/**
 * The MIT License (MIT)
 *
 * Copyright (c) 2018-2019 Erik Moqvist
 *
 * Permission is hereby granted, free of charge, to any person
 * obtaining a copy of this software and associated documentation
 * files (the "Software"), to deal in the Software without
 * restriction, including without limitation the rights to use, copy,
 * modify, merge, publish, distribute, sublicense, and/or sell copies
 * of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be
 * included in all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
 * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
 * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 * SOFTWARE.
 */

/**
 * This file was generated by cantools version 39.4.0 Sat Dec  2 17:22:10 2023.
 */

#include <string.h>

#include "sr439.h"

static inline uint8_t pack_left_shift_u8(
    uint8_t value,
    uint8_t shift,
    uint8_t mask)
{
    return (uint8_t)((uint8_t)(value << shift) & mask);
}

static inline uint8_t pack_left_shift_u16(
    uint16_t value,
    uint8_t shift,
    uint8_t mask)
{
    return (uint8_t)((uint8_t)(value << shift) & mask);
}

static inline uint8_t pack_left_shift_u32(
    uint32_t value,
    uint8_t shift,
    uint8_t mask)
{
    return (uint8_t)((uint8_t)(value << shift) & mask);
}

static inline uint8_t pack_right_shift_u8(
    uint8_t value,
    uint8_t shift,
    uint8_t mask)
{
    return (uint8_t)((uint8_t)(value >> shift) & mask);
}

static inline uint8_t pack_right_shift_u16(
    uint16_t value,
    uint8_t shift,
    uint8_t mask)
{
    return (uint8_t)((uint8_t)(value >> shift) & mask);
}

static inline uint8_t pack_right_shift_u32(
    uint32_t value,
    uint8_t shift,
    uint8_t mask)
{
    return (uint8_t)((uint8_t)(value >> shift) & mask);
}

static inline uint8_t unpack_left_shift_u8(
    uint8_t value,
    uint8_t shift,
    uint8_t mask)
{
    return (uint8_t)((uint8_t)(value & mask) << shift);
}

static inline uint16_t unpack_left_shift_u16(
    uint8_t value,
    uint8_t shift,
    uint8_t mask)
{
    return (uint16_t)((uint16_t)(value & mask) << shift);
}

static inline uint32_t unpack_left_shift_u32(
    uint8_t value,
    uint8_t shift,
    uint8_t mask)
{
    return (uint32_t)((uint32_t)(value & mask) << shift);
}

static inline uint8_t unpack_right_shift_u8(
    uint8_t value,
    uint8_t shift,
    uint8_t mask)
{
    return (uint8_t)((uint8_t)(value & mask) >> shift);
}

static inline uint16_t unpack_right_shift_u16(
    uint8_t value,
    uint8_t shift,
    uint8_t mask)
{
    return (uint16_t)((uint16_t)(value & mask) >> shift);
}

static inline uint32_t unpack_right_shift_u32(
    uint8_t value,
    uint8_t shift,
    uint8_t mask)
{
    return (uint32_t)((uint32_t)(value & mask) >> shift);
}

int sr439_veh_info2_pack(
    uint8_t *dst_p,
    const struct sr439_veh_info2_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[0] |= pack_left_shift_u8(src_p->gear_state_now, 4u, 0x70u);
    dst_p[0] |= pack_left_shift_u8(src_p->gear_sta_now_v, 3u, 0x08u);
    dst_p[1] |= pack_left_shift_u8(src_p->ign_state_v, 5u, 0x20u);
    dst_p[1] |= pack_left_shift_u8(src_p->ign_state, 4u, 0x10u);

    return (8);
}

int sr439_veh_info2_unpack(
    struct sr439_veh_info2_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->gear_state_now = unpack_right_shift_u8(src_p[0], 4u, 0x70u);
    dst_p->gear_sta_now_v = unpack_right_shift_u8(src_p[0], 3u, 0x08u);
    dst_p->ign_state_v = unpack_right_shift_u8(src_p[1], 5u, 0x20u);
    dst_p->ign_state = unpack_right_shift_u8(src_p[1], 4u, 0x10u);

    return (0);
}

int sr439_veh_info2_init(struct sr439_veh_info2_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct sr439_veh_info2_t));

    return 0;
}

uint8_t sr439_veh_info2_gear_state_now_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_veh_info2_gear_state_now_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_veh_info2_gear_state_now_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t sr439_veh_info2_gear_sta_now_v_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_veh_info2_gear_sta_now_v_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_veh_info2_gear_sta_now_v_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_veh_info2_ign_state_v_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_veh_info2_ign_state_v_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_veh_info2_ign_state_v_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_veh_info2_ign_state_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_veh_info2_ign_state_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_veh_info2_ign_state_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

int sr439_veh_info1_pack(
    uint8_t *dst_p,
    const struct sr439_veh_info1_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[0] |= pack_left_shift_u8(src_p->veh_speed_v, 7u, 0x80u);
    dst_p[0] |= pack_left_shift_u8(src_p->yaw_rat_v, 6u, 0x40u);
    dst_p[0] |= pack_left_shift_u8(src_p->str_angle_v, 5u, 0x20u);
    dst_p[0] |= pack_right_shift_u16(src_p->veh_speed_in, 8u, 0x1fu);
    dst_p[1] |= pack_left_shift_u16(src_p->veh_speed_in, 0u, 0xffu);
    dst_p[2] |= pack_right_shift_u16(src_p->yaw_rate_in, 8u, 0xffu);
    dst_p[3] |= pack_left_shift_u16(src_p->yaw_rate_in, 0u, 0xffu);
    dst_p[4] |= pack_right_shift_u16(src_p->str_angle, 8u, 0xffu);
    dst_p[5] |= pack_left_shift_u16(src_p->str_angle, 0u, 0xffu);

    return (8);
}

int sr439_veh_info1_unpack(
    struct sr439_veh_info1_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->veh_speed_v = unpack_right_shift_u8(src_p[0], 7u, 0x80u);
    dst_p->yaw_rat_v = unpack_right_shift_u8(src_p[0], 6u, 0x40u);
    dst_p->str_angle_v = unpack_right_shift_u8(src_p[0], 5u, 0x20u);
    dst_p->veh_speed_in = unpack_left_shift_u16(src_p[0], 8u, 0x1fu);
    dst_p->veh_speed_in |= unpack_right_shift_u16(src_p[1], 0u, 0xffu);
    dst_p->yaw_rate_in = unpack_left_shift_u16(src_p[2], 8u, 0xffu);
    dst_p->yaw_rate_in |= unpack_right_shift_u16(src_p[3], 0u, 0xffu);
    dst_p->str_angle = unpack_left_shift_u16(src_p[4], 8u, 0xffu);
    dst_p->str_angle |= unpack_right_shift_u16(src_p[5], 0u, 0xffu);

    return (0);
}

int sr439_veh_info1_init(struct sr439_veh_info1_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct sr439_veh_info1_t));

    return 0;
}

uint8_t sr439_veh_info1_veh_speed_v_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_veh_info1_veh_speed_v_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_veh_info1_veh_speed_v_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_veh_info1_yaw_rat_v_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_veh_info1_yaw_rat_v_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_veh_info1_yaw_rat_v_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_veh_info1_str_angle_v_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_veh_info1_str_angle_v_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_veh_info1_str_angle_v_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint16_t sr439_veh_info1_veh_speed_in_encode(double value)
{
    return (uint16_t)(value / 0.05625);
}

double sr439_veh_info1_veh_speed_in_decode(uint16_t value)
{
    return ((double)value * 0.05625);
}

bool sr439_veh_info1_veh_speed_in_is_in_range(uint16_t value)
{
    return (value <= 5333u);
}

uint16_t sr439_veh_info1_yaw_rate_in_encode(double value)
{
    return (uint16_t)((value - -2.093) / 0.00024);
}

double sr439_veh_info1_yaw_rate_in_decode(uint16_t value)
{
    return (((double)value * 0.00024) + -2.093);
}

bool sr439_veh_info1_yaw_rate_in_is_in_range(uint16_t value)
{
    return (value <= 17442u);
}

uint16_t sr439_veh_info1_str_angle_encode(double value)
{
    return (uint16_t)((value - -900.0) / 0.1);
}

double sr439_veh_info1_str_angle_decode(uint16_t value)
{
    return (((double)value * 0.1) + -900.0);
}

bool sr439_veh_info1_str_angle_is_in_range(uint16_t value)
{
    return (value <= 18000u);
}

int sr439_veh_info_radar1_pack(
    uint8_t *dst_p,
    const struct sr439_veh_info_radar1_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[0] |= pack_right_shift_u16(src_p->steer_angle, 8u, 0xffu);
    dst_p[1] |= pack_left_shift_u16(src_p->steer_angle, 0u, 0xffu);
    dst_p[3] |= pack_left_shift_u8(src_p->gear_sts, 0u, 0x07u);
    dst_p[4] |= pack_right_shift_u16(src_p->veh_speed, 8u, 0x1fu);
    dst_p[5] |= pack_left_shift_u16(src_p->veh_speed, 0u, 0xffu);
    dst_p[6] |= pack_right_shift_u16(src_p->yaw_rate_raw, 8u, 0xffu);
    dst_p[7] |= pack_left_shift_u16(src_p->yaw_rate_raw, 0u, 0xffu);

    return (8);
}

int sr439_veh_info_radar1_unpack(
    struct sr439_veh_info_radar1_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->steer_angle = unpack_left_shift_u16(src_p[0], 8u, 0xffu);
    dst_p->steer_angle |= unpack_right_shift_u16(src_p[1], 0u, 0xffu);
    dst_p->gear_sts = unpack_right_shift_u8(src_p[3], 0u, 0x07u);
    dst_p->veh_speed = unpack_left_shift_u16(src_p[4], 8u, 0x1fu);
    dst_p->veh_speed |= unpack_right_shift_u16(src_p[5], 0u, 0xffu);
    dst_p->yaw_rate_raw = unpack_left_shift_u16(src_p[6], 8u, 0xffu);
    dst_p->yaw_rate_raw |= unpack_right_shift_u16(src_p[7], 0u, 0xffu);

    return (0);
}

int sr439_veh_info_radar1_init(struct sr439_veh_info_radar1_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct sr439_veh_info_radar1_t));

    return 0;
}

uint16_t sr439_veh_info_radar1_steer_angle_encode(double value)
{
    return (uint16_t)((value - -900.0) / 0.1);
}

double sr439_veh_info_radar1_steer_angle_decode(uint16_t value)
{
    return (((double)value * 0.1) + -900.0);
}

bool sr439_veh_info_radar1_steer_angle_is_in_range(uint16_t value)
{
    return (value <= 18000u);
}

uint8_t sr439_veh_info_radar1_gear_sts_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_veh_info_radar1_gear_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_veh_info_radar1_gear_sts_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint16_t sr439_veh_info_radar1_veh_speed_encode(double value)
{
    return (uint16_t)(value / 0.05625);
}

double sr439_veh_info_radar1_veh_speed_decode(uint16_t value)
{
    return ((double)value * 0.05625);
}

bool sr439_veh_info_radar1_veh_speed_is_in_range(uint16_t value)
{
    return (value <= 5333u);
}

uint16_t sr439_veh_info_radar1_yaw_rate_raw_encode(double value)
{
    return (uint16_t)((value - -2.093) / 0.00024);
}

double sr439_veh_info_radar1_yaw_rate_raw_decode(uint16_t value)
{
    return (((double)value * 0.00024) + -2.093);
}

bool sr439_veh_info_radar1_yaw_rate_raw_is_in_range(uint16_t value)
{
    return (value <= 17442u);
}

int sr439_veh_info_radar2_pack(
    uint8_t *dst_p,
    const struct sr439_veh_info_radar2_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[0] |= pack_right_shift_u16(src_p->steer_angle, 8u, 0xffu);
    dst_p[1] |= pack_left_shift_u16(src_p->steer_angle, 0u, 0xffu);
    dst_p[3] |= pack_left_shift_u8(src_p->gear_sts, 0u, 0x07u);
    dst_p[4] |= pack_right_shift_u16(src_p->veh_speed, 8u, 0x1fu);
    dst_p[5] |= pack_left_shift_u16(src_p->veh_speed, 0u, 0xffu);
    dst_p[6] |= pack_right_shift_u16(src_p->yaw_rate_raw, 8u, 0xffu);
    dst_p[7] |= pack_left_shift_u16(src_p->yaw_rate_raw, 0u, 0xffu);

    return (8);
}

int sr439_veh_info_radar2_unpack(
    struct sr439_veh_info_radar2_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->steer_angle = unpack_left_shift_u16(src_p[0], 8u, 0xffu);
    dst_p->steer_angle |= unpack_right_shift_u16(src_p[1], 0u, 0xffu);
    dst_p->gear_sts = unpack_right_shift_u8(src_p[3], 0u, 0x07u);
    dst_p->veh_speed = unpack_left_shift_u16(src_p[4], 8u, 0x1fu);
    dst_p->veh_speed |= unpack_right_shift_u16(src_p[5], 0u, 0xffu);
    dst_p->yaw_rate_raw = unpack_left_shift_u16(src_p[6], 8u, 0xffu);
    dst_p->yaw_rate_raw |= unpack_right_shift_u16(src_p[7], 0u, 0xffu);

    return (0);
}

int sr439_veh_info_radar2_init(struct sr439_veh_info_radar2_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct sr439_veh_info_radar2_t));

    return 0;
}

uint16_t sr439_veh_info_radar2_steer_angle_encode(double value)
{
    return (uint16_t)((value - -900.0) / 0.1);
}

double sr439_veh_info_radar2_steer_angle_decode(uint16_t value)
{
    return (((double)value * 0.1) + -900.0);
}

bool sr439_veh_info_radar2_steer_angle_is_in_range(uint16_t value)
{
    return (value <= 18000u);
}

uint8_t sr439_veh_info_radar2_gear_sts_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_veh_info_radar2_gear_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_veh_info_radar2_gear_sts_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint16_t sr439_veh_info_radar2_veh_speed_encode(double value)
{
    return (uint16_t)(value / 0.05625);
}

double sr439_veh_info_radar2_veh_speed_decode(uint16_t value)
{
    return ((double)value * 0.05625);
}

bool sr439_veh_info_radar2_veh_speed_is_in_range(uint16_t value)
{
    return (value <= 5333u);
}

uint16_t sr439_veh_info_radar2_yaw_rate_raw_encode(double value)
{
    return (uint16_t)((value - -2.093) / 0.00024);
}

double sr439_veh_info_radar2_yaw_rate_raw_decode(uint16_t value)
{
    return (((double)value * 0.00024) + -2.093);
}

bool sr439_veh_info_radar2_yaw_rate_raw_is_in_range(uint16_t value)
{
    return (value <= 17442u);
}

int sr439_changcheng_test_state_pack(
    uint8_t *dst_p,
    const struct sr439_changcheng_test_state_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[2] |= pack_left_shift_u8(src_p->changcheng_lock_sts, 7u, 0x80u);
    dst_p[2] |= pack_left_shift_u8(src_p->changcheng_driver_door_sts, 6u, 0x40u);
    dst_p[2] |= pack_left_shift_u8(src_p->changcheng_rl_door_sts, 5u, 0x20u);
    dst_p[2] |= pack_left_shift_u8(src_p->changcheng_passenger_door_sts, 4u, 0x10u);
    dst_p[2] |= pack_left_shift_u8(src_p->changcheng_rr_door_sts, 3u, 0x08u);
    dst_p[6] |= pack_left_shift_u8(src_p->changcheng_left_turn_sw_sts, 2u, 0x04u);
    dst_p[6] |= pack_left_shift_u8(src_p->changcheng_right_turn_sw_sts, 1u, 0x02u);

    return (8);
}

int sr439_changcheng_test_state_unpack(
    struct sr439_changcheng_test_state_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->changcheng_lock_sts = unpack_right_shift_u8(src_p[2], 7u, 0x80u);
    dst_p->changcheng_driver_door_sts = unpack_right_shift_u8(src_p[2], 6u, 0x40u);
    dst_p->changcheng_rl_door_sts = unpack_right_shift_u8(src_p[2], 5u, 0x20u);
    dst_p->changcheng_passenger_door_sts = unpack_right_shift_u8(src_p[2], 4u, 0x10u);
    dst_p->changcheng_rr_door_sts = unpack_right_shift_u8(src_p[2], 3u, 0x08u);
    dst_p->changcheng_left_turn_sw_sts = unpack_right_shift_u8(src_p[6], 2u, 0x04u);
    dst_p->changcheng_right_turn_sw_sts = unpack_right_shift_u8(src_p[6], 1u, 0x02u);

    return (0);
}

int sr439_changcheng_test_state_init(struct sr439_changcheng_test_state_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct sr439_changcheng_test_state_t));

    return 0;
}

uint8_t sr439_changcheng_test_state_changcheng_lock_sts_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_changcheng_test_state_changcheng_lock_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_changcheng_test_state_changcheng_lock_sts_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_changcheng_test_state_changcheng_driver_door_sts_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_changcheng_test_state_changcheng_driver_door_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_changcheng_test_state_changcheng_driver_door_sts_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_changcheng_test_state_changcheng_rl_door_sts_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_changcheng_test_state_changcheng_rl_door_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_changcheng_test_state_changcheng_rl_door_sts_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_changcheng_test_state_changcheng_passenger_door_sts_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_changcheng_test_state_changcheng_passenger_door_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_changcheng_test_state_changcheng_passenger_door_sts_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_changcheng_test_state_changcheng_rr_door_sts_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_changcheng_test_state_changcheng_rr_door_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_changcheng_test_state_changcheng_rr_door_sts_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_changcheng_test_state_changcheng_left_turn_sw_sts_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_changcheng_test_state_changcheng_left_turn_sw_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_changcheng_test_state_changcheng_left_turn_sw_sts_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_changcheng_test_state_changcheng_right_turn_sw_sts_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_changcheng_test_state_changcheng_right_turn_sw_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_changcheng_test_state_changcheng_right_turn_sw_sts_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

int sr439_obj_end_msg_rr_pack(
    uint8_t *dst_p,
    const struct sr439_obj_end_msg_rr_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[0] |= pack_left_shift_u8(src_p->rf_voltage1_too_low, 7u, 0x80u);
    dst_p[0] |= pack_left_shift_u8(src_p->mcu_voltage_too_low, 6u, 0x40u);
    dst_p[0] |= pack_left_shift_u8(src_p->mcu_voltage_too_high, 5u, 0x20u);
    dst_p[0] |= pack_left_shift_u8(src_p->mcu_temperature_too_low, 4u, 0x10u);
    dst_p[0] |= pack_left_shift_u8(src_p->mcu_temperature_too_high, 3u, 0x08u);
    dst_p[0] |= pack_left_shift_u8(src_p->lost_communication_with_camera, 2u, 0x04u);
    dst_p[0] |= pack_left_shift_u8(src_p->communication_bus_off, 1u, 0x02u);
    dst_p[0] |= pack_left_shift_u8(src_p->radar_sleep_flag, 0u, 0x01u);
    dst_p[1] |= pack_left_shift_u8(src_p->mcu_master_clock_error, 7u, 0x80u);
    dst_p[1] |= pack_left_shift_u8(src_p->rf_temperature_too_low, 6u, 0x40u);
    dst_p[1] |= pack_left_shift_u8(src_p->rf_temperature_too_high, 5u, 0x20u);
    dst_p[1] |= pack_left_shift_u8(src_p->battery_voltage_too_low, 4u, 0x10u);
    dst_p[1] |= pack_left_shift_u8(src_p->battery_voltage_too_high, 3u, 0x08u);
    dst_p[1] |= pack_left_shift_u8(src_p->rf_voltage2_too_high, 2u, 0x04u);
    dst_p[1] |= pack_left_shift_u8(src_p->rf_voltage2_too_low, 1u, 0x02u);
    dst_p[1] |= pack_left_shift_u8(src_p->rf_voltage1_too_high, 0u, 0x01u);
    dst_p[2] |= pack_left_shift_u8(src_p->invalid_steering_angle_signal, 7u, 0x80u);
    dst_p[2] |= pack_left_shift_u8(src_p->invalid_yaw_rate_signal, 6u, 0x40u);
    dst_p[2] |= pack_left_shift_u8(src_p->invalid_vehicle_speed_signal, 5u, 0x20u);
    dst_p[2] |= pack_left_shift_u8(src_p->missing_calibration, 4u, 0x10u);
    dst_p[2] |= pack_left_shift_u8(src_p->rf_sensor_fault, 3u, 0x08u);
    dst_p[2] |= pack_left_shift_u8(src_p->g_sensor_fault, 2u, 0x04u);
    dst_p[2] |= pack_left_shift_u8(src_p->mcu_memory_error, 1u, 0x02u);
    dst_p[2] |= pack_left_shift_u8(src_p->mcu_error, 0u, 0x01u);
    dst_p[3] |= pack_left_shift_u8(src_p->radar_mount_position_shift_error, 3u, 0x08u);
    dst_p[3] |= pack_left_shift_u8(src_p->radar_block, 2u, 0x04u);
    dst_p[3] |= pack_left_shift_u8(src_p->invalid_ign_sta_signal, 1u, 0x02u);
    dst_p[3] |= pack_left_shift_u8(src_p->invalid_gear_position_signal, 0u, 0x01u);
    dst_p[4] |= pack_left_shift_u8(src_p->radar_yaw_rate_raw_v, 7u, 0x80u);

    return (8);
}

int sr439_obj_end_msg_rr_unpack(
    struct sr439_obj_end_msg_rr_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->rf_voltage1_too_low = unpack_right_shift_u8(src_p[0], 7u, 0x80u);
    dst_p->mcu_voltage_too_low = unpack_right_shift_u8(src_p[0], 6u, 0x40u);
    dst_p->mcu_voltage_too_high = unpack_right_shift_u8(src_p[0], 5u, 0x20u);
    dst_p->mcu_temperature_too_low = unpack_right_shift_u8(src_p[0], 4u, 0x10u);
    dst_p->mcu_temperature_too_high = unpack_right_shift_u8(src_p[0], 3u, 0x08u);
    dst_p->lost_communication_with_camera = unpack_right_shift_u8(src_p[0], 2u, 0x04u);
    dst_p->communication_bus_off = unpack_right_shift_u8(src_p[0], 1u, 0x02u);
    dst_p->radar_sleep_flag = unpack_right_shift_u8(src_p[0], 0u, 0x01u);
    dst_p->mcu_master_clock_error = unpack_right_shift_u8(src_p[1], 7u, 0x80u);
    dst_p->rf_temperature_too_low = unpack_right_shift_u8(src_p[1], 6u, 0x40u);
    dst_p->rf_temperature_too_high = unpack_right_shift_u8(src_p[1], 5u, 0x20u);
    dst_p->battery_voltage_too_low = unpack_right_shift_u8(src_p[1], 4u, 0x10u);
    dst_p->battery_voltage_too_high = unpack_right_shift_u8(src_p[1], 3u, 0x08u);
    dst_p->rf_voltage2_too_high = unpack_right_shift_u8(src_p[1], 2u, 0x04u);
    dst_p->rf_voltage2_too_low = unpack_right_shift_u8(src_p[1], 1u, 0x02u);
    dst_p->rf_voltage1_too_high = unpack_right_shift_u8(src_p[1], 0u, 0x01u);
    dst_p->invalid_steering_angle_signal = unpack_right_shift_u8(src_p[2], 7u, 0x80u);
    dst_p->invalid_yaw_rate_signal = unpack_right_shift_u8(src_p[2], 6u, 0x40u);
    dst_p->invalid_vehicle_speed_signal = unpack_right_shift_u8(src_p[2], 5u, 0x20u);
    dst_p->missing_calibration = unpack_right_shift_u8(src_p[2], 4u, 0x10u);
    dst_p->rf_sensor_fault = unpack_right_shift_u8(src_p[2], 3u, 0x08u);
    dst_p->g_sensor_fault = unpack_right_shift_u8(src_p[2], 2u, 0x04u);
    dst_p->mcu_memory_error = unpack_right_shift_u8(src_p[2], 1u, 0x02u);
    dst_p->mcu_error = unpack_right_shift_u8(src_p[2], 0u, 0x01u);
    dst_p->radar_mount_position_shift_error = unpack_right_shift_u8(src_p[3], 3u, 0x08u);
    dst_p->radar_block = unpack_right_shift_u8(src_p[3], 2u, 0x04u);
    dst_p->invalid_ign_sta_signal = unpack_right_shift_u8(src_p[3], 1u, 0x02u);
    dst_p->invalid_gear_position_signal = unpack_right_shift_u8(src_p[3], 0u, 0x01u);
    dst_p->radar_yaw_rate_raw_v = unpack_right_shift_u8(src_p[4], 7u, 0x80u);

    return (0);
}

int sr439_obj_end_msg_rr_init(struct sr439_obj_end_msg_rr_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct sr439_obj_end_msg_rr_t));

    return 0;
}

uint8_t sr439_obj_end_msg_rr_rf_voltage1_too_low_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_rr_rf_voltage1_too_low_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_rr_rf_voltage1_too_low_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_rr_mcu_voltage_too_low_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_rr_mcu_voltage_too_low_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_rr_mcu_voltage_too_low_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_rr_mcu_voltage_too_high_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_rr_mcu_voltage_too_high_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_rr_mcu_voltage_too_high_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_rr_mcu_temperature_too_low_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_rr_mcu_temperature_too_low_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_rr_mcu_temperature_too_low_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_rr_mcu_temperature_too_high_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_rr_mcu_temperature_too_high_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_rr_mcu_temperature_too_high_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_rr_lost_communication_with_camera_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_rr_lost_communication_with_camera_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_rr_lost_communication_with_camera_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_rr_communication_bus_off_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_rr_communication_bus_off_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_rr_communication_bus_off_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_rr_radar_sleep_flag_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_rr_radar_sleep_flag_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_rr_radar_sleep_flag_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_rr_mcu_master_clock_error_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_rr_mcu_master_clock_error_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_rr_mcu_master_clock_error_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_rr_rf_temperature_too_low_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_rr_rf_temperature_too_low_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_rr_rf_temperature_too_low_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_rr_rf_temperature_too_high_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_rr_rf_temperature_too_high_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_rr_rf_temperature_too_high_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_rr_battery_voltage_too_low_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_rr_battery_voltage_too_low_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_rr_battery_voltage_too_low_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_rr_battery_voltage_too_high_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_rr_battery_voltage_too_high_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_rr_battery_voltage_too_high_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_rr_rf_voltage2_too_high_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_rr_rf_voltage2_too_high_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_rr_rf_voltage2_too_high_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_rr_rf_voltage2_too_low_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_rr_rf_voltage2_too_low_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_rr_rf_voltage2_too_low_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_rr_rf_voltage1_too_high_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_rr_rf_voltage1_too_high_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_rr_rf_voltage1_too_high_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_rr_invalid_steering_angle_signal_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_rr_invalid_steering_angle_signal_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_rr_invalid_steering_angle_signal_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_rr_invalid_yaw_rate_signal_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_rr_invalid_yaw_rate_signal_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_rr_invalid_yaw_rate_signal_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_rr_invalid_vehicle_speed_signal_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_rr_invalid_vehicle_speed_signal_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_rr_invalid_vehicle_speed_signal_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_rr_missing_calibration_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_rr_missing_calibration_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_rr_missing_calibration_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_rr_rf_sensor_fault_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_rr_rf_sensor_fault_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_rr_rf_sensor_fault_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_rr_g_sensor_fault_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_rr_g_sensor_fault_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_rr_g_sensor_fault_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_rr_mcu_memory_error_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_rr_mcu_memory_error_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_rr_mcu_memory_error_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_rr_mcu_error_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_rr_mcu_error_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_rr_mcu_error_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_rr_radar_mount_position_shift_error_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_rr_radar_mount_position_shift_error_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_rr_radar_mount_position_shift_error_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_rr_radar_block_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_rr_radar_block_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_rr_radar_block_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_rr_invalid_ign_sta_signal_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_rr_invalid_ign_sta_signal_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_rr_invalid_ign_sta_signal_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_rr_invalid_gear_position_signal_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_rr_invalid_gear_position_signal_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_rr_invalid_gear_position_signal_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_rr_radar_yaw_rate_raw_v_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_rr_radar_yaw_rate_raw_v_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_rr_radar_yaw_rate_raw_v_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

int sr439_obj_end_msg_fr_pack(
    uint8_t *dst_p,
    const struct sr439_obj_end_msg_fr_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[0] |= pack_left_shift_u8(src_p->rf_voltage1_too_low, 7u, 0x80u);
    dst_p[0] |= pack_left_shift_u8(src_p->mcu_voltage_too_low, 6u, 0x40u);
    dst_p[0] |= pack_left_shift_u8(src_p->mcu_voltage_too_high, 5u, 0x20u);
    dst_p[0] |= pack_left_shift_u8(src_p->mcu_temperature_too_low, 4u, 0x10u);
    dst_p[0] |= pack_left_shift_u8(src_p->mcu_temperature_too_high, 3u, 0x08u);
    dst_p[0] |= pack_left_shift_u8(src_p->lost_communication_with_camera, 2u, 0x04u);
    dst_p[0] |= pack_left_shift_u8(src_p->communication_bus_off, 1u, 0x02u);
    dst_p[0] |= pack_left_shift_u8(src_p->radar_sleep_flag, 0u, 0x01u);
    dst_p[1] |= pack_left_shift_u8(src_p->mcu_master_clock_error, 7u, 0x80u);
    dst_p[1] |= pack_left_shift_u8(src_p->rf_temperature_too_low, 6u, 0x40u);
    dst_p[1] |= pack_left_shift_u8(src_p->rf_temperature_too_high, 5u, 0x20u);
    dst_p[1] |= pack_left_shift_u8(src_p->battery_voltage_too_low, 4u, 0x10u);
    dst_p[1] |= pack_left_shift_u8(src_p->battery_voltage_too_high, 3u, 0x08u);
    dst_p[1] |= pack_left_shift_u8(src_p->rf_voltage2_too_high, 2u, 0x04u);
    dst_p[1] |= pack_left_shift_u8(src_p->rf_voltage2_too_low, 1u, 0x02u);
    dst_p[1] |= pack_left_shift_u8(src_p->rf_voltage1_too_high, 0u, 0x01u);
    dst_p[2] |= pack_left_shift_u8(src_p->invalid_steering_angle_signal, 7u, 0x80u);
    dst_p[2] |= pack_left_shift_u8(src_p->invalid_yaw_rate_signal, 6u, 0x40u);
    dst_p[2] |= pack_left_shift_u8(src_p->invalid_vehicle_speed_signal, 5u, 0x20u);
    dst_p[2] |= pack_left_shift_u8(src_p->missing_calibration, 4u, 0x10u);
    dst_p[2] |= pack_left_shift_u8(src_p->rf_sensor_fault, 3u, 0x08u);
    dst_p[2] |= pack_left_shift_u8(src_p->g_sensor_fault, 2u, 0x04u);
    dst_p[2] |= pack_left_shift_u8(src_p->mcu_memory_error, 1u, 0x02u);
    dst_p[2] |= pack_left_shift_u8(src_p->mcu_error, 0u, 0x01u);
    dst_p[3] |= pack_left_shift_u8(src_p->radar_mount_position_shift_error, 3u, 0x08u);
    dst_p[3] |= pack_left_shift_u8(src_p->radar_block, 2u, 0x04u);
    dst_p[3] |= pack_left_shift_u8(src_p->invalid_ign_sta_signal, 1u, 0x02u);
    dst_p[3] |= pack_left_shift_u8(src_p->invalid_gear_position_signal, 0u, 0x01u);
    dst_p[4] |= pack_left_shift_u8(src_p->radar_yaw_rate_raw_v, 7u, 0x80u);

    return (8);
}

int sr439_obj_end_msg_fr_unpack(
    struct sr439_obj_end_msg_fr_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->rf_voltage1_too_low = unpack_right_shift_u8(src_p[0], 7u, 0x80u);
    dst_p->mcu_voltage_too_low = unpack_right_shift_u8(src_p[0], 6u, 0x40u);
    dst_p->mcu_voltage_too_high = unpack_right_shift_u8(src_p[0], 5u, 0x20u);
    dst_p->mcu_temperature_too_low = unpack_right_shift_u8(src_p[0], 4u, 0x10u);
    dst_p->mcu_temperature_too_high = unpack_right_shift_u8(src_p[0], 3u, 0x08u);
    dst_p->lost_communication_with_camera = unpack_right_shift_u8(src_p[0], 2u, 0x04u);
    dst_p->communication_bus_off = unpack_right_shift_u8(src_p[0], 1u, 0x02u);
    dst_p->radar_sleep_flag = unpack_right_shift_u8(src_p[0], 0u, 0x01u);
    dst_p->mcu_master_clock_error = unpack_right_shift_u8(src_p[1], 7u, 0x80u);
    dst_p->rf_temperature_too_low = unpack_right_shift_u8(src_p[1], 6u, 0x40u);
    dst_p->rf_temperature_too_high = unpack_right_shift_u8(src_p[1], 5u, 0x20u);
    dst_p->battery_voltage_too_low = unpack_right_shift_u8(src_p[1], 4u, 0x10u);
    dst_p->battery_voltage_too_high = unpack_right_shift_u8(src_p[1], 3u, 0x08u);
    dst_p->rf_voltage2_too_high = unpack_right_shift_u8(src_p[1], 2u, 0x04u);
    dst_p->rf_voltage2_too_low = unpack_right_shift_u8(src_p[1], 1u, 0x02u);
    dst_p->rf_voltage1_too_high = unpack_right_shift_u8(src_p[1], 0u, 0x01u);
    dst_p->invalid_steering_angle_signal = unpack_right_shift_u8(src_p[2], 7u, 0x80u);
    dst_p->invalid_yaw_rate_signal = unpack_right_shift_u8(src_p[2], 6u, 0x40u);
    dst_p->invalid_vehicle_speed_signal = unpack_right_shift_u8(src_p[2], 5u, 0x20u);
    dst_p->missing_calibration = unpack_right_shift_u8(src_p[2], 4u, 0x10u);
    dst_p->rf_sensor_fault = unpack_right_shift_u8(src_p[2], 3u, 0x08u);
    dst_p->g_sensor_fault = unpack_right_shift_u8(src_p[2], 2u, 0x04u);
    dst_p->mcu_memory_error = unpack_right_shift_u8(src_p[2], 1u, 0x02u);
    dst_p->mcu_error = unpack_right_shift_u8(src_p[2], 0u, 0x01u);
    dst_p->radar_mount_position_shift_error = unpack_right_shift_u8(src_p[3], 3u, 0x08u);
    dst_p->radar_block = unpack_right_shift_u8(src_p[3], 2u, 0x04u);
    dst_p->invalid_ign_sta_signal = unpack_right_shift_u8(src_p[3], 1u, 0x02u);
    dst_p->invalid_gear_position_signal = unpack_right_shift_u8(src_p[3], 0u, 0x01u);
    dst_p->radar_yaw_rate_raw_v = unpack_right_shift_u8(src_p[4], 7u, 0x80u);

    return (0);
}

int sr439_obj_end_msg_fr_init(struct sr439_obj_end_msg_fr_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct sr439_obj_end_msg_fr_t));

    return 0;
}

uint8_t sr439_obj_end_msg_fr_rf_voltage1_too_low_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_fr_rf_voltage1_too_low_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_fr_rf_voltage1_too_low_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_fr_mcu_voltage_too_low_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_fr_mcu_voltage_too_low_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_fr_mcu_voltage_too_low_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_fr_mcu_voltage_too_high_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_fr_mcu_voltage_too_high_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_fr_mcu_voltage_too_high_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_fr_mcu_temperature_too_low_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_fr_mcu_temperature_too_low_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_fr_mcu_temperature_too_low_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_fr_mcu_temperature_too_high_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_fr_mcu_temperature_too_high_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_fr_mcu_temperature_too_high_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_fr_lost_communication_with_camera_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_fr_lost_communication_with_camera_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_fr_lost_communication_with_camera_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_fr_communication_bus_off_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_fr_communication_bus_off_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_fr_communication_bus_off_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_fr_radar_sleep_flag_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_fr_radar_sleep_flag_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_fr_radar_sleep_flag_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_fr_mcu_master_clock_error_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_fr_mcu_master_clock_error_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_fr_mcu_master_clock_error_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_fr_rf_temperature_too_low_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_fr_rf_temperature_too_low_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_fr_rf_temperature_too_low_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_fr_rf_temperature_too_high_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_fr_rf_temperature_too_high_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_fr_rf_temperature_too_high_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_fr_battery_voltage_too_low_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_fr_battery_voltage_too_low_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_fr_battery_voltage_too_low_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_fr_battery_voltage_too_high_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_fr_battery_voltage_too_high_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_fr_battery_voltage_too_high_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_fr_rf_voltage2_too_high_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_fr_rf_voltage2_too_high_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_fr_rf_voltage2_too_high_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_fr_rf_voltage2_too_low_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_fr_rf_voltage2_too_low_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_fr_rf_voltage2_too_low_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_fr_rf_voltage1_too_high_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_fr_rf_voltage1_too_high_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_fr_rf_voltage1_too_high_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_fr_invalid_steering_angle_signal_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_fr_invalid_steering_angle_signal_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_fr_invalid_steering_angle_signal_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_fr_invalid_yaw_rate_signal_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_fr_invalid_yaw_rate_signal_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_fr_invalid_yaw_rate_signal_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_fr_invalid_vehicle_speed_signal_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_fr_invalid_vehicle_speed_signal_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_fr_invalid_vehicle_speed_signal_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_fr_missing_calibration_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_fr_missing_calibration_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_fr_missing_calibration_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_fr_rf_sensor_fault_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_fr_rf_sensor_fault_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_fr_rf_sensor_fault_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_fr_g_sensor_fault_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_fr_g_sensor_fault_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_fr_g_sensor_fault_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_fr_mcu_memory_error_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_fr_mcu_memory_error_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_fr_mcu_memory_error_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_fr_mcu_error_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_fr_mcu_error_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_fr_mcu_error_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_fr_radar_mount_position_shift_error_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_fr_radar_mount_position_shift_error_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_fr_radar_mount_position_shift_error_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_fr_radar_block_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_fr_radar_block_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_fr_radar_block_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_fr_invalid_ign_sta_signal_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_fr_invalid_ign_sta_signal_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_fr_invalid_ign_sta_signal_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_fr_invalid_gear_position_signal_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_fr_invalid_gear_position_signal_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_fr_invalid_gear_position_signal_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_fr_radar_yaw_rate_raw_v_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_fr_radar_yaw_rate_raw_v_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_fr_radar_yaw_rate_raw_v_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

int sr439_obj_end_msg_fl_pack(
    uint8_t *dst_p,
    const struct sr439_obj_end_msg_fl_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[0] |= pack_left_shift_u8(src_p->rf_voltage1_too_low, 7u, 0x80u);
    dst_p[0] |= pack_left_shift_u8(src_p->mcu_voltage_too_low, 6u, 0x40u);
    dst_p[0] |= pack_left_shift_u8(src_p->mcu_voltage_too_high, 5u, 0x20u);
    dst_p[0] |= pack_left_shift_u8(src_p->mcu_temperature_too_low, 4u, 0x10u);
    dst_p[0] |= pack_left_shift_u8(src_p->mcu_temperature_too_high, 3u, 0x08u);
    dst_p[0] |= pack_left_shift_u8(src_p->lost_communication_with_camera, 2u, 0x04u);
    dst_p[0] |= pack_left_shift_u8(src_p->communication_bus_off, 1u, 0x02u);
    dst_p[0] |= pack_left_shift_u8(src_p->radar_sleep_flag, 0u, 0x01u);
    dst_p[1] |= pack_left_shift_u8(src_p->mcu_master_clock_error, 7u, 0x80u);
    dst_p[1] |= pack_left_shift_u8(src_p->rf_temperature_too_low, 6u, 0x40u);
    dst_p[1] |= pack_left_shift_u8(src_p->rf_temperature_too_high, 5u, 0x20u);
    dst_p[1] |= pack_left_shift_u8(src_p->battery_voltage_too_low, 4u, 0x10u);
    dst_p[1] |= pack_left_shift_u8(src_p->battery_voltage_too_high, 3u, 0x08u);
    dst_p[1] |= pack_left_shift_u8(src_p->rf_voltage2_too_high, 2u, 0x04u);
    dst_p[1] |= pack_left_shift_u8(src_p->rf_voltage2_too_low, 1u, 0x02u);
    dst_p[1] |= pack_left_shift_u8(src_p->rf_voltage1_too_high, 0u, 0x01u);
    dst_p[2] |= pack_left_shift_u8(src_p->invalid_steering_angle_signal, 7u, 0x80u);
    dst_p[2] |= pack_left_shift_u8(src_p->invalid_yaw_rate_signal, 6u, 0x40u);
    dst_p[2] |= pack_left_shift_u8(src_p->invalid_vehicle_speed_signal, 5u, 0x20u);
    dst_p[2] |= pack_left_shift_u8(src_p->missing_calibration, 4u, 0x10u);
    dst_p[2] |= pack_left_shift_u8(src_p->rf_sensor_fault, 3u, 0x08u);
    dst_p[2] |= pack_left_shift_u8(src_p->g_sensor_fault, 2u, 0x04u);
    dst_p[2] |= pack_left_shift_u8(src_p->mcu_memory_error, 1u, 0x02u);
    dst_p[2] |= pack_left_shift_u8(src_p->mcu_error, 0u, 0x01u);
    dst_p[3] |= pack_left_shift_u8(src_p->radar_mount_position_shift_error, 3u, 0x08u);
    dst_p[3] |= pack_left_shift_u8(src_p->radar_block, 2u, 0x04u);
    dst_p[3] |= pack_left_shift_u8(src_p->invalid_ign_sta_signal, 1u, 0x02u);
    dst_p[3] |= pack_left_shift_u8(src_p->invalid_gear_position_signal, 0u, 0x01u);
    dst_p[4] |= pack_left_shift_u8(src_p->radar_yaw_rate_raw_v, 7u, 0x80u);

    return (8);
}

int sr439_obj_end_msg_fl_unpack(
    struct sr439_obj_end_msg_fl_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->rf_voltage1_too_low = unpack_right_shift_u8(src_p[0], 7u, 0x80u);
    dst_p->mcu_voltage_too_low = unpack_right_shift_u8(src_p[0], 6u, 0x40u);
    dst_p->mcu_voltage_too_high = unpack_right_shift_u8(src_p[0], 5u, 0x20u);
    dst_p->mcu_temperature_too_low = unpack_right_shift_u8(src_p[0], 4u, 0x10u);
    dst_p->mcu_temperature_too_high = unpack_right_shift_u8(src_p[0], 3u, 0x08u);
    dst_p->lost_communication_with_camera = unpack_right_shift_u8(src_p[0], 2u, 0x04u);
    dst_p->communication_bus_off = unpack_right_shift_u8(src_p[0], 1u, 0x02u);
    dst_p->radar_sleep_flag = unpack_right_shift_u8(src_p[0], 0u, 0x01u);
    dst_p->mcu_master_clock_error = unpack_right_shift_u8(src_p[1], 7u, 0x80u);
    dst_p->rf_temperature_too_low = unpack_right_shift_u8(src_p[1], 6u, 0x40u);
    dst_p->rf_temperature_too_high = unpack_right_shift_u8(src_p[1], 5u, 0x20u);
    dst_p->battery_voltage_too_low = unpack_right_shift_u8(src_p[1], 4u, 0x10u);
    dst_p->battery_voltage_too_high = unpack_right_shift_u8(src_p[1], 3u, 0x08u);
    dst_p->rf_voltage2_too_high = unpack_right_shift_u8(src_p[1], 2u, 0x04u);
    dst_p->rf_voltage2_too_low = unpack_right_shift_u8(src_p[1], 1u, 0x02u);
    dst_p->rf_voltage1_too_high = unpack_right_shift_u8(src_p[1], 0u, 0x01u);
    dst_p->invalid_steering_angle_signal = unpack_right_shift_u8(src_p[2], 7u, 0x80u);
    dst_p->invalid_yaw_rate_signal = unpack_right_shift_u8(src_p[2], 6u, 0x40u);
    dst_p->invalid_vehicle_speed_signal = unpack_right_shift_u8(src_p[2], 5u, 0x20u);
    dst_p->missing_calibration = unpack_right_shift_u8(src_p[2], 4u, 0x10u);
    dst_p->rf_sensor_fault = unpack_right_shift_u8(src_p[2], 3u, 0x08u);
    dst_p->g_sensor_fault = unpack_right_shift_u8(src_p[2], 2u, 0x04u);
    dst_p->mcu_memory_error = unpack_right_shift_u8(src_p[2], 1u, 0x02u);
    dst_p->mcu_error = unpack_right_shift_u8(src_p[2], 0u, 0x01u);
    dst_p->radar_mount_position_shift_error = unpack_right_shift_u8(src_p[3], 3u, 0x08u);
    dst_p->radar_block = unpack_right_shift_u8(src_p[3], 2u, 0x04u);
    dst_p->invalid_ign_sta_signal = unpack_right_shift_u8(src_p[3], 1u, 0x02u);
    dst_p->invalid_gear_position_signal = unpack_right_shift_u8(src_p[3], 0u, 0x01u);
    dst_p->radar_yaw_rate_raw_v = unpack_right_shift_u8(src_p[4], 7u, 0x80u);

    return (0);
}

int sr439_obj_end_msg_fl_init(struct sr439_obj_end_msg_fl_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct sr439_obj_end_msg_fl_t));

    return 0;
}

uint8_t sr439_obj_end_msg_fl_rf_voltage1_too_low_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_fl_rf_voltage1_too_low_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_fl_rf_voltage1_too_low_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_fl_mcu_voltage_too_low_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_fl_mcu_voltage_too_low_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_fl_mcu_voltage_too_low_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_fl_mcu_voltage_too_high_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_fl_mcu_voltage_too_high_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_fl_mcu_voltage_too_high_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_fl_mcu_temperature_too_low_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_fl_mcu_temperature_too_low_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_fl_mcu_temperature_too_low_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_fl_mcu_temperature_too_high_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_fl_mcu_temperature_too_high_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_fl_mcu_temperature_too_high_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_fl_lost_communication_with_camera_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_fl_lost_communication_with_camera_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_fl_lost_communication_with_camera_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_fl_communication_bus_off_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_fl_communication_bus_off_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_fl_communication_bus_off_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_fl_radar_sleep_flag_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_fl_radar_sleep_flag_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_fl_radar_sleep_flag_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_fl_mcu_master_clock_error_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_fl_mcu_master_clock_error_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_fl_mcu_master_clock_error_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_fl_rf_temperature_too_low_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_fl_rf_temperature_too_low_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_fl_rf_temperature_too_low_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_fl_rf_temperature_too_high_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_fl_rf_temperature_too_high_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_fl_rf_temperature_too_high_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_fl_battery_voltage_too_low_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_fl_battery_voltage_too_low_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_fl_battery_voltage_too_low_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_fl_battery_voltage_too_high_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_fl_battery_voltage_too_high_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_fl_battery_voltage_too_high_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_fl_rf_voltage2_too_high_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_fl_rf_voltage2_too_high_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_fl_rf_voltage2_too_high_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_fl_rf_voltage2_too_low_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_fl_rf_voltage2_too_low_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_fl_rf_voltage2_too_low_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_fl_rf_voltage1_too_high_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_fl_rf_voltage1_too_high_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_fl_rf_voltage1_too_high_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_fl_invalid_steering_angle_signal_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_fl_invalid_steering_angle_signal_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_fl_invalid_steering_angle_signal_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_fl_invalid_yaw_rate_signal_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_fl_invalid_yaw_rate_signal_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_fl_invalid_yaw_rate_signal_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_fl_invalid_vehicle_speed_signal_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_fl_invalid_vehicle_speed_signal_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_fl_invalid_vehicle_speed_signal_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_fl_missing_calibration_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_fl_missing_calibration_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_fl_missing_calibration_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_fl_rf_sensor_fault_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_fl_rf_sensor_fault_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_fl_rf_sensor_fault_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_fl_g_sensor_fault_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_fl_g_sensor_fault_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_fl_g_sensor_fault_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_fl_mcu_memory_error_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_fl_mcu_memory_error_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_fl_mcu_memory_error_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_fl_mcu_error_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_fl_mcu_error_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_fl_mcu_error_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_fl_radar_mount_position_shift_error_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_fl_radar_mount_position_shift_error_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_fl_radar_mount_position_shift_error_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_fl_radar_block_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_fl_radar_block_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_fl_radar_block_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_fl_invalid_ign_sta_signal_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_fl_invalid_ign_sta_signal_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_fl_invalid_ign_sta_signal_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_fl_invalid_gear_position_signal_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_fl_invalid_gear_position_signal_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_fl_invalid_gear_position_signal_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_fl_radar_yaw_rate_raw_v_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_fl_radar_yaw_rate_raw_v_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_fl_radar_yaw_rate_raw_v_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

int sr439_obj_end_msg_rl_pack(
    uint8_t *dst_p,
    const struct sr439_obj_end_msg_rl_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[0] |= pack_left_shift_u8(src_p->rf_voltage1_too_low, 7u, 0x80u);
    dst_p[0] |= pack_left_shift_u8(src_p->mcu_voltage_too_low, 6u, 0x40u);
    dst_p[0] |= pack_left_shift_u8(src_p->mcu_voltage_too_high, 5u, 0x20u);
    dst_p[0] |= pack_left_shift_u8(src_p->mcu_temperature_too_low, 4u, 0x10u);
    dst_p[0] |= pack_left_shift_u8(src_p->mcu_temperature_too_high, 3u, 0x08u);
    dst_p[0] |= pack_left_shift_u8(src_p->lost_communication_with_camera, 2u, 0x04u);
    dst_p[0] |= pack_left_shift_u8(src_p->communication_bus_off, 1u, 0x02u);
    dst_p[0] |= pack_left_shift_u8(src_p->radar_sleep_flag, 0u, 0x01u);
    dst_p[1] |= pack_left_shift_u8(src_p->mcu_master_clock_error, 7u, 0x80u);
    dst_p[1] |= pack_left_shift_u8(src_p->rf_temperature_too_low, 6u, 0x40u);
    dst_p[1] |= pack_left_shift_u8(src_p->rf_temperature_too_high, 5u, 0x20u);
    dst_p[1] |= pack_left_shift_u8(src_p->battery_voltage_too_low, 4u, 0x10u);
    dst_p[1] |= pack_left_shift_u8(src_p->battery_voltage_too_high, 3u, 0x08u);
    dst_p[1] |= pack_left_shift_u8(src_p->rf_voltage2_too_high, 2u, 0x04u);
    dst_p[1] |= pack_left_shift_u8(src_p->rf_voltage2_too_low, 1u, 0x02u);
    dst_p[1] |= pack_left_shift_u8(src_p->rf_voltage1_too_high, 0u, 0x01u);
    dst_p[2] |= pack_left_shift_u8(src_p->invalid_steering_angle_signal, 7u, 0x80u);
    dst_p[2] |= pack_left_shift_u8(src_p->invalid_yaw_rate_signal, 6u, 0x40u);
    dst_p[2] |= pack_left_shift_u8(src_p->invalid_vehicle_speed_signal, 5u, 0x20u);
    dst_p[2] |= pack_left_shift_u8(src_p->missing_calibration, 4u, 0x10u);
    dst_p[2] |= pack_left_shift_u8(src_p->rf_sensor_fault, 3u, 0x08u);
    dst_p[2] |= pack_left_shift_u8(src_p->g_sensor_fault, 2u, 0x04u);
    dst_p[2] |= pack_left_shift_u8(src_p->mcu_memory_error, 1u, 0x02u);
    dst_p[2] |= pack_left_shift_u8(src_p->mcu_error, 0u, 0x01u);
    dst_p[3] |= pack_left_shift_u8(src_p->radar_mount_position_shift_error, 3u, 0x08u);
    dst_p[3] |= pack_left_shift_u8(src_p->radar_block, 2u, 0x04u);
    dst_p[3] |= pack_left_shift_u8(src_p->invalid_ign_sta_signal, 1u, 0x02u);
    dst_p[3] |= pack_left_shift_u8(src_p->invalid_gear_position_signal, 0u, 0x01u);
    dst_p[4] |= pack_left_shift_u8(src_p->radar_yaw_rate_raw_v, 7u, 0x80u);

    return (8);
}

int sr439_obj_end_msg_rl_unpack(
    struct sr439_obj_end_msg_rl_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->rf_voltage1_too_low = unpack_right_shift_u8(src_p[0], 7u, 0x80u);
    dst_p->mcu_voltage_too_low = unpack_right_shift_u8(src_p[0], 6u, 0x40u);
    dst_p->mcu_voltage_too_high = unpack_right_shift_u8(src_p[0], 5u, 0x20u);
    dst_p->mcu_temperature_too_low = unpack_right_shift_u8(src_p[0], 4u, 0x10u);
    dst_p->mcu_temperature_too_high = unpack_right_shift_u8(src_p[0], 3u, 0x08u);
    dst_p->lost_communication_with_camera = unpack_right_shift_u8(src_p[0], 2u, 0x04u);
    dst_p->communication_bus_off = unpack_right_shift_u8(src_p[0], 1u, 0x02u);
    dst_p->radar_sleep_flag = unpack_right_shift_u8(src_p[0], 0u, 0x01u);
    dst_p->mcu_master_clock_error = unpack_right_shift_u8(src_p[1], 7u, 0x80u);
    dst_p->rf_temperature_too_low = unpack_right_shift_u8(src_p[1], 6u, 0x40u);
    dst_p->rf_temperature_too_high = unpack_right_shift_u8(src_p[1], 5u, 0x20u);
    dst_p->battery_voltage_too_low = unpack_right_shift_u8(src_p[1], 4u, 0x10u);
    dst_p->battery_voltage_too_high = unpack_right_shift_u8(src_p[1], 3u, 0x08u);
    dst_p->rf_voltage2_too_high = unpack_right_shift_u8(src_p[1], 2u, 0x04u);
    dst_p->rf_voltage2_too_low = unpack_right_shift_u8(src_p[1], 1u, 0x02u);
    dst_p->rf_voltage1_too_high = unpack_right_shift_u8(src_p[1], 0u, 0x01u);
    dst_p->invalid_steering_angle_signal = unpack_right_shift_u8(src_p[2], 7u, 0x80u);
    dst_p->invalid_yaw_rate_signal = unpack_right_shift_u8(src_p[2], 6u, 0x40u);
    dst_p->invalid_vehicle_speed_signal = unpack_right_shift_u8(src_p[2], 5u, 0x20u);
    dst_p->missing_calibration = unpack_right_shift_u8(src_p[2], 4u, 0x10u);
    dst_p->rf_sensor_fault = unpack_right_shift_u8(src_p[2], 3u, 0x08u);
    dst_p->g_sensor_fault = unpack_right_shift_u8(src_p[2], 2u, 0x04u);
    dst_p->mcu_memory_error = unpack_right_shift_u8(src_p[2], 1u, 0x02u);
    dst_p->mcu_error = unpack_right_shift_u8(src_p[2], 0u, 0x01u);
    dst_p->radar_mount_position_shift_error = unpack_right_shift_u8(src_p[3], 3u, 0x08u);
    dst_p->radar_block = unpack_right_shift_u8(src_p[3], 2u, 0x04u);
    dst_p->invalid_ign_sta_signal = unpack_right_shift_u8(src_p[3], 1u, 0x02u);
    dst_p->invalid_gear_position_signal = unpack_right_shift_u8(src_p[3], 0u, 0x01u);
    dst_p->radar_yaw_rate_raw_v = unpack_right_shift_u8(src_p[4], 7u, 0x80u);

    return (0);
}

int sr439_obj_end_msg_rl_init(struct sr439_obj_end_msg_rl_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct sr439_obj_end_msg_rl_t));

    return 0;
}

uint8_t sr439_obj_end_msg_rl_rf_voltage1_too_low_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_rl_rf_voltage1_too_low_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_rl_rf_voltage1_too_low_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_rl_mcu_voltage_too_low_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_rl_mcu_voltage_too_low_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_rl_mcu_voltage_too_low_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_rl_mcu_voltage_too_high_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_rl_mcu_voltage_too_high_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_rl_mcu_voltage_too_high_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_rl_mcu_temperature_too_low_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_rl_mcu_temperature_too_low_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_rl_mcu_temperature_too_low_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_rl_mcu_temperature_too_high_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_rl_mcu_temperature_too_high_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_rl_mcu_temperature_too_high_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_rl_lost_communication_with_camera_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_rl_lost_communication_with_camera_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_rl_lost_communication_with_camera_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_rl_communication_bus_off_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_rl_communication_bus_off_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_rl_communication_bus_off_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_rl_radar_sleep_flag_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_rl_radar_sleep_flag_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_rl_radar_sleep_flag_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_rl_mcu_master_clock_error_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_rl_mcu_master_clock_error_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_rl_mcu_master_clock_error_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_rl_rf_temperature_too_low_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_rl_rf_temperature_too_low_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_rl_rf_temperature_too_low_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_rl_rf_temperature_too_high_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_rl_rf_temperature_too_high_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_rl_rf_temperature_too_high_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_rl_battery_voltage_too_low_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_rl_battery_voltage_too_low_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_rl_battery_voltage_too_low_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_rl_battery_voltage_too_high_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_rl_battery_voltage_too_high_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_rl_battery_voltage_too_high_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_rl_rf_voltage2_too_high_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_rl_rf_voltage2_too_high_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_rl_rf_voltage2_too_high_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_rl_rf_voltage2_too_low_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_rl_rf_voltage2_too_low_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_rl_rf_voltage2_too_low_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_rl_rf_voltage1_too_high_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_rl_rf_voltage1_too_high_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_rl_rf_voltage1_too_high_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_rl_invalid_steering_angle_signal_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_rl_invalid_steering_angle_signal_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_rl_invalid_steering_angle_signal_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_rl_invalid_yaw_rate_signal_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_rl_invalid_yaw_rate_signal_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_rl_invalid_yaw_rate_signal_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_rl_invalid_vehicle_speed_signal_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_rl_invalid_vehicle_speed_signal_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_rl_invalid_vehicle_speed_signal_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_rl_missing_calibration_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_rl_missing_calibration_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_rl_missing_calibration_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_rl_rf_sensor_fault_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_rl_rf_sensor_fault_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_rl_rf_sensor_fault_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_rl_g_sensor_fault_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_rl_g_sensor_fault_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_rl_g_sensor_fault_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_rl_mcu_memory_error_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_rl_mcu_memory_error_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_rl_mcu_memory_error_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_rl_mcu_error_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_rl_mcu_error_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_rl_mcu_error_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_rl_radar_mount_position_shift_error_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_rl_radar_mount_position_shift_error_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_rl_radar_mount_position_shift_error_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_rl_radar_block_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_rl_radar_block_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_rl_radar_block_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_rl_invalid_ign_sta_signal_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_rl_invalid_ign_sta_signal_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_rl_invalid_ign_sta_signal_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_rl_invalid_gear_position_signal_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_rl_invalid_gear_position_signal_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_rl_invalid_gear_position_signal_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_end_msg_rl_radar_yaw_rate_raw_v_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_end_msg_rl_radar_yaw_rate_raw_v_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_end_msg_rl_radar_yaw_rate_raw_v_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

int sr439_obj_quality_info_rr_pack(
    uint8_t *dst_p,
    const struct sr439_obj_quality_info_rr_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[0] |= pack_left_shift_u8(src_p->obj_id, 0u, 0xffu);
    dst_p[1] |= pack_left_shift_u8(src_p->obj_dist_lon_rms, 3u, 0xf8u);
    dst_p[1] |= pack_right_shift_u8(src_p->obj_dist_lat_rms, 2u, 0x07u);
    dst_p[2] |= pack_left_shift_u8(src_p->obj_dist_lat_rms, 6u, 0xc0u);
    dst_p[2] |= pack_left_shift_u8(src_p->obj_vel_lon_rms, 1u, 0x3eu);
    dst_p[2] |= pack_right_shift_u8(src_p->obj_vel_lat_rms, 4u, 0x01u);
    dst_p[3] |= pack_left_shift_u8(src_p->obj_vel_lat_rms, 4u, 0xf0u);
    dst_p[3] |= pack_right_shift_u8(src_p->obj_acc_lon_rms, 1u, 0x0fu);
    dst_p[4] |= pack_left_shift_u8(src_p->obj_acc_lon_rms, 7u, 0x80u);
    dst_p[4] |= pack_left_shift_u8(src_p->obj_acc_lat_rms, 2u, 0x7cu);
    dst_p[4] |= pack_left_shift_u8(src_p->obj_cipv, 1u, 0x02u);
    dst_p[6] |= pack_left_shift_u8(src_p->obj_prob_of_class, 0u, 0x07u);
    dst_p[7] |= pack_left_shift_u8(src_p->obj_prob_of_exist, 5u, 0xe0u);
    dst_p[7] |= pack_left_shift_u8(src_p->obj_meas_state, 2u, 0x1cu);

    return (8);
}

int sr439_obj_quality_info_rr_unpack(
    struct sr439_obj_quality_info_rr_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->obj_id = unpack_right_shift_u8(src_p[0], 0u, 0xffu);
    dst_p->obj_dist_lon_rms = unpack_right_shift_u8(src_p[1], 3u, 0xf8u);
    dst_p->obj_dist_lat_rms = unpack_left_shift_u8(src_p[1], 2u, 0x07u);
    dst_p->obj_dist_lat_rms |= unpack_right_shift_u8(src_p[2], 6u, 0xc0u);
    dst_p->obj_vel_lon_rms = unpack_right_shift_u8(src_p[2], 1u, 0x3eu);
    dst_p->obj_vel_lat_rms = unpack_left_shift_u8(src_p[2], 4u, 0x01u);
    dst_p->obj_vel_lat_rms |= unpack_right_shift_u8(src_p[3], 4u, 0xf0u);
    dst_p->obj_acc_lon_rms = unpack_left_shift_u8(src_p[3], 1u, 0x0fu);
    dst_p->obj_acc_lon_rms |= unpack_right_shift_u8(src_p[4], 7u, 0x80u);
    dst_p->obj_acc_lat_rms = unpack_right_shift_u8(src_p[4], 2u, 0x7cu);
    dst_p->obj_cipv = unpack_right_shift_u8(src_p[4], 1u, 0x02u);
    dst_p->obj_prob_of_class = unpack_right_shift_u8(src_p[6], 0u, 0x07u);
    dst_p->obj_prob_of_exist = unpack_right_shift_u8(src_p[7], 5u, 0xe0u);
    dst_p->obj_meas_state = unpack_right_shift_u8(src_p[7], 2u, 0x1cu);

    return (0);
}

int sr439_obj_quality_info_rr_init(struct sr439_obj_quality_info_rr_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct sr439_obj_quality_info_rr_t));

    return 0;
}

uint8_t sr439_obj_quality_info_rr_obj_id_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_quality_info_rr_obj_id_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_quality_info_rr_obj_id_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint8_t sr439_obj_quality_info_rr_obj_dist_lon_rms_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_quality_info_rr_obj_dist_lon_rms_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_quality_info_rr_obj_dist_lon_rms_is_in_range(uint8_t value)
{
    return (value <= 31u);
}

uint8_t sr439_obj_quality_info_rr_obj_dist_lat_rms_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_quality_info_rr_obj_dist_lat_rms_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_quality_info_rr_obj_dist_lat_rms_is_in_range(uint8_t value)
{
    return (value <= 31u);
}

uint8_t sr439_obj_quality_info_rr_obj_vel_lon_rms_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_quality_info_rr_obj_vel_lon_rms_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_quality_info_rr_obj_vel_lon_rms_is_in_range(uint8_t value)
{
    return (value <= 31u);
}

uint8_t sr439_obj_quality_info_rr_obj_vel_lat_rms_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_quality_info_rr_obj_vel_lat_rms_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_quality_info_rr_obj_vel_lat_rms_is_in_range(uint8_t value)
{
    return (value <= 31u);
}

uint8_t sr439_obj_quality_info_rr_obj_acc_lon_rms_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_quality_info_rr_obj_acc_lon_rms_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_quality_info_rr_obj_acc_lon_rms_is_in_range(uint8_t value)
{
    return (value <= 31u);
}

uint8_t sr439_obj_quality_info_rr_obj_acc_lat_rms_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_quality_info_rr_obj_acc_lat_rms_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_quality_info_rr_obj_acc_lat_rms_is_in_range(uint8_t value)
{
    return (value <= 31u);
}

uint8_t sr439_obj_quality_info_rr_obj_cipv_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_quality_info_rr_obj_cipv_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_quality_info_rr_obj_cipv_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_quality_info_rr_obj_prob_of_class_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_quality_info_rr_obj_prob_of_class_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_quality_info_rr_obj_prob_of_class_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t sr439_obj_quality_info_rr_obj_prob_of_exist_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_quality_info_rr_obj_prob_of_exist_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_quality_info_rr_obj_prob_of_exist_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t sr439_obj_quality_info_rr_obj_meas_state_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_quality_info_rr_obj_meas_state_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_quality_info_rr_obj_meas_state_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

int sr439_obj_quality_info_fr_pack(
    uint8_t *dst_p,
    const struct sr439_obj_quality_info_fr_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[0] |= pack_left_shift_u8(src_p->obj_id, 0u, 0xffu);
    dst_p[1] |= pack_left_shift_u8(src_p->obj_dist_lon_rms, 3u, 0xf8u);
    dst_p[1] |= pack_right_shift_u8(src_p->obj_dist_lat_rms, 2u, 0x07u);
    dst_p[2] |= pack_left_shift_u8(src_p->obj_dist_lat_rms, 6u, 0xc0u);
    dst_p[2] |= pack_left_shift_u8(src_p->obj_vel_lon_rms, 1u, 0x3eu);
    dst_p[2] |= pack_right_shift_u8(src_p->obj_vel_lat_rms, 4u, 0x01u);
    dst_p[3] |= pack_left_shift_u8(src_p->obj_vel_lat_rms, 4u, 0xf0u);
    dst_p[3] |= pack_right_shift_u8(src_p->obj_acc_lon_rms, 1u, 0x0fu);
    dst_p[4] |= pack_left_shift_u8(src_p->obj_acc_lon_rms, 7u, 0x80u);
    dst_p[4] |= pack_left_shift_u8(src_p->obj_acc_lat_rms, 2u, 0x7cu);
    dst_p[4] |= pack_left_shift_u8(src_p->obj_cipv, 1u, 0x02u);
    dst_p[6] |= pack_left_shift_u8(src_p->obj_prob_of_class, 0u, 0x07u);
    dst_p[7] |= pack_left_shift_u8(src_p->obj_prob_of_exist, 5u, 0xe0u);
    dst_p[7] |= pack_left_shift_u8(src_p->obj_meas_state, 2u, 0x1cu);

    return (8);
}

int sr439_obj_quality_info_fr_unpack(
    struct sr439_obj_quality_info_fr_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->obj_id = unpack_right_shift_u8(src_p[0], 0u, 0xffu);
    dst_p->obj_dist_lon_rms = unpack_right_shift_u8(src_p[1], 3u, 0xf8u);
    dst_p->obj_dist_lat_rms = unpack_left_shift_u8(src_p[1], 2u, 0x07u);
    dst_p->obj_dist_lat_rms |= unpack_right_shift_u8(src_p[2], 6u, 0xc0u);
    dst_p->obj_vel_lon_rms = unpack_right_shift_u8(src_p[2], 1u, 0x3eu);
    dst_p->obj_vel_lat_rms = unpack_left_shift_u8(src_p[2], 4u, 0x01u);
    dst_p->obj_vel_lat_rms |= unpack_right_shift_u8(src_p[3], 4u, 0xf0u);
    dst_p->obj_acc_lon_rms = unpack_left_shift_u8(src_p[3], 1u, 0x0fu);
    dst_p->obj_acc_lon_rms |= unpack_right_shift_u8(src_p[4], 7u, 0x80u);
    dst_p->obj_acc_lat_rms = unpack_right_shift_u8(src_p[4], 2u, 0x7cu);
    dst_p->obj_cipv = unpack_right_shift_u8(src_p[4], 1u, 0x02u);
    dst_p->obj_prob_of_class = unpack_right_shift_u8(src_p[6], 0u, 0x07u);
    dst_p->obj_prob_of_exist = unpack_right_shift_u8(src_p[7], 5u, 0xe0u);
    dst_p->obj_meas_state = unpack_right_shift_u8(src_p[7], 2u, 0x1cu);

    return (0);
}

int sr439_obj_quality_info_fr_init(struct sr439_obj_quality_info_fr_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct sr439_obj_quality_info_fr_t));

    return 0;
}

uint8_t sr439_obj_quality_info_fr_obj_id_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_quality_info_fr_obj_id_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_quality_info_fr_obj_id_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint8_t sr439_obj_quality_info_fr_obj_dist_lon_rms_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_quality_info_fr_obj_dist_lon_rms_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_quality_info_fr_obj_dist_lon_rms_is_in_range(uint8_t value)
{
    return (value <= 31u);
}

uint8_t sr439_obj_quality_info_fr_obj_dist_lat_rms_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_quality_info_fr_obj_dist_lat_rms_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_quality_info_fr_obj_dist_lat_rms_is_in_range(uint8_t value)
{
    return (value <= 31u);
}

uint8_t sr439_obj_quality_info_fr_obj_vel_lon_rms_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_quality_info_fr_obj_vel_lon_rms_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_quality_info_fr_obj_vel_lon_rms_is_in_range(uint8_t value)
{
    return (value <= 31u);
}

uint8_t sr439_obj_quality_info_fr_obj_vel_lat_rms_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_quality_info_fr_obj_vel_lat_rms_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_quality_info_fr_obj_vel_lat_rms_is_in_range(uint8_t value)
{
    return (value <= 31u);
}

uint8_t sr439_obj_quality_info_fr_obj_acc_lon_rms_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_quality_info_fr_obj_acc_lon_rms_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_quality_info_fr_obj_acc_lon_rms_is_in_range(uint8_t value)
{
    return (value <= 31u);
}

uint8_t sr439_obj_quality_info_fr_obj_acc_lat_rms_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_quality_info_fr_obj_acc_lat_rms_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_quality_info_fr_obj_acc_lat_rms_is_in_range(uint8_t value)
{
    return (value <= 31u);
}

uint8_t sr439_obj_quality_info_fr_obj_cipv_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_quality_info_fr_obj_cipv_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_quality_info_fr_obj_cipv_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_quality_info_fr_obj_prob_of_class_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_quality_info_fr_obj_prob_of_class_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_quality_info_fr_obj_prob_of_class_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t sr439_obj_quality_info_fr_obj_prob_of_exist_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_quality_info_fr_obj_prob_of_exist_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_quality_info_fr_obj_prob_of_exist_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t sr439_obj_quality_info_fr_obj_meas_state_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_quality_info_fr_obj_meas_state_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_quality_info_fr_obj_meas_state_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

int sr439_obj_quality_info_fl_pack(
    uint8_t *dst_p,
    const struct sr439_obj_quality_info_fl_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[0] |= pack_left_shift_u8(src_p->obj_id, 0u, 0xffu);
    dst_p[1] |= pack_left_shift_u8(src_p->obj_dist_lon_rms, 3u, 0xf8u);
    dst_p[1] |= pack_right_shift_u8(src_p->obj_dist_lat_rms, 2u, 0x07u);
    dst_p[2] |= pack_left_shift_u8(src_p->obj_dist_lat_rms, 6u, 0xc0u);
    dst_p[2] |= pack_left_shift_u8(src_p->obj_vel_lon_rms, 1u, 0x3eu);
    dst_p[2] |= pack_right_shift_u8(src_p->obj_vel_lat_rms, 4u, 0x01u);
    dst_p[3] |= pack_left_shift_u8(src_p->obj_vel_lat_rms, 4u, 0xf0u);
    dst_p[3] |= pack_right_shift_u8(src_p->obj_acc_lon_rms, 1u, 0x0fu);
    dst_p[4] |= pack_left_shift_u8(src_p->obj_acc_lon_rms, 7u, 0x80u);
    dst_p[4] |= pack_left_shift_u8(src_p->obj_acc_lat_rms, 2u, 0x7cu);
    dst_p[4] |= pack_left_shift_u8(src_p->obj_cipv, 1u, 0x02u);
    dst_p[6] |= pack_left_shift_u8(src_p->obj_prob_of_class, 0u, 0x07u);
    dst_p[7] |= pack_left_shift_u8(src_p->obj_prob_of_exist, 5u, 0xe0u);
    dst_p[7] |= pack_left_shift_u8(src_p->obj_meas_state, 2u, 0x1cu);

    return (8);
}

int sr439_obj_quality_info_fl_unpack(
    struct sr439_obj_quality_info_fl_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->obj_id = unpack_right_shift_u8(src_p[0], 0u, 0xffu);
    dst_p->obj_dist_lon_rms = unpack_right_shift_u8(src_p[1], 3u, 0xf8u);
    dst_p->obj_dist_lat_rms = unpack_left_shift_u8(src_p[1], 2u, 0x07u);
    dst_p->obj_dist_lat_rms |= unpack_right_shift_u8(src_p[2], 6u, 0xc0u);
    dst_p->obj_vel_lon_rms = unpack_right_shift_u8(src_p[2], 1u, 0x3eu);
    dst_p->obj_vel_lat_rms = unpack_left_shift_u8(src_p[2], 4u, 0x01u);
    dst_p->obj_vel_lat_rms |= unpack_right_shift_u8(src_p[3], 4u, 0xf0u);
    dst_p->obj_acc_lon_rms = unpack_left_shift_u8(src_p[3], 1u, 0x0fu);
    dst_p->obj_acc_lon_rms |= unpack_right_shift_u8(src_p[4], 7u, 0x80u);
    dst_p->obj_acc_lat_rms = unpack_right_shift_u8(src_p[4], 2u, 0x7cu);
    dst_p->obj_cipv = unpack_right_shift_u8(src_p[4], 1u, 0x02u);
    dst_p->obj_prob_of_class = unpack_right_shift_u8(src_p[6], 0u, 0x07u);
    dst_p->obj_prob_of_exist = unpack_right_shift_u8(src_p[7], 5u, 0xe0u);
    dst_p->obj_meas_state = unpack_right_shift_u8(src_p[7], 2u, 0x1cu);

    return (0);
}

int sr439_obj_quality_info_fl_init(struct sr439_obj_quality_info_fl_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct sr439_obj_quality_info_fl_t));

    return 0;
}

uint8_t sr439_obj_quality_info_fl_obj_id_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_quality_info_fl_obj_id_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_quality_info_fl_obj_id_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint8_t sr439_obj_quality_info_fl_obj_dist_lon_rms_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_quality_info_fl_obj_dist_lon_rms_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_quality_info_fl_obj_dist_lon_rms_is_in_range(uint8_t value)
{
    return (value <= 31u);
}

uint8_t sr439_obj_quality_info_fl_obj_dist_lat_rms_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_quality_info_fl_obj_dist_lat_rms_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_quality_info_fl_obj_dist_lat_rms_is_in_range(uint8_t value)
{
    return (value <= 31u);
}

uint8_t sr439_obj_quality_info_fl_obj_vel_lon_rms_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_quality_info_fl_obj_vel_lon_rms_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_quality_info_fl_obj_vel_lon_rms_is_in_range(uint8_t value)
{
    return (value <= 31u);
}

uint8_t sr439_obj_quality_info_fl_obj_vel_lat_rms_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_quality_info_fl_obj_vel_lat_rms_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_quality_info_fl_obj_vel_lat_rms_is_in_range(uint8_t value)
{
    return (value <= 31u);
}

uint8_t sr439_obj_quality_info_fl_obj_acc_lon_rms_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_quality_info_fl_obj_acc_lon_rms_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_quality_info_fl_obj_acc_lon_rms_is_in_range(uint8_t value)
{
    return (value <= 31u);
}

uint8_t sr439_obj_quality_info_fl_obj_acc_lat_rms_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_quality_info_fl_obj_acc_lat_rms_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_quality_info_fl_obj_acc_lat_rms_is_in_range(uint8_t value)
{
    return (value <= 31u);
}

uint8_t sr439_obj_quality_info_fl_obj_cipv_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_quality_info_fl_obj_cipv_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_quality_info_fl_obj_cipv_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_quality_info_fl_obj_prob_of_class_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_quality_info_fl_obj_prob_of_class_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_quality_info_fl_obj_prob_of_class_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t sr439_obj_quality_info_fl_obj_prob_of_exist_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_quality_info_fl_obj_prob_of_exist_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_quality_info_fl_obj_prob_of_exist_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t sr439_obj_quality_info_fl_obj_meas_state_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_quality_info_fl_obj_meas_state_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_quality_info_fl_obj_meas_state_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

int sr439_obj_general_info_rr_pack(
    uint8_t *dst_p,
    const struct sr439_obj_general_info_rr_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[0] |= pack_left_shift_u8(src_p->obj_id, 0u, 0xffu);
    dst_p[1] |= pack_right_shift_u16(src_p->obj_dist_long, 4u, 0xffu);
    dst_p[2] |= pack_left_shift_u16(src_p->obj_dist_long, 4u, 0xf0u);
    dst_p[2] |= pack_right_shift_u16(src_p->obj_dist_lat, 11u, 0x0fu);
    dst_p[3] |= pack_right_shift_u16(src_p->obj_dist_lat, 3u, 0xffu);
    dst_p[4] |= pack_left_shift_u16(src_p->obj_dist_lat, 5u, 0xe0u);
    dst_p[4] |= pack_left_shift_u8(src_p->obj_dyn_prop, 0u, 0x0fu);
    dst_p[5] |= pack_right_shift_u16(src_p->obj_vrel_long, 4u, 0xffu);
    dst_p[6] |= pack_left_shift_u16(src_p->obj_vrel_long, 4u, 0xf0u);
    dst_p[6] |= pack_right_shift_u16(src_p->obj_vrel_lat, 8u, 0x0fu);
    dst_p[7] |= pack_left_shift_u16(src_p->obj_vrel_lat, 0u, 0xffu);

    return (8);
}

int sr439_obj_general_info_rr_unpack(
    struct sr439_obj_general_info_rr_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->obj_id = unpack_right_shift_u8(src_p[0], 0u, 0xffu);
    dst_p->obj_dist_long = unpack_left_shift_u16(src_p[1], 4u, 0xffu);
    dst_p->obj_dist_long |= unpack_right_shift_u16(src_p[2], 4u, 0xf0u);
    dst_p->obj_dist_lat = unpack_left_shift_u16(src_p[2], 11u, 0x0fu);
    dst_p->obj_dist_lat |= unpack_left_shift_u16(src_p[3], 3u, 0xffu);
    dst_p->obj_dist_lat |= unpack_right_shift_u16(src_p[4], 5u, 0xe0u);
    dst_p->obj_dyn_prop = unpack_right_shift_u8(src_p[4], 0u, 0x0fu);
    dst_p->obj_vrel_long = unpack_left_shift_u16(src_p[5], 4u, 0xffu);
    dst_p->obj_vrel_long |= unpack_right_shift_u16(src_p[6], 4u, 0xf0u);
    dst_p->obj_vrel_lat = unpack_left_shift_u16(src_p[6], 8u, 0x0fu);
    dst_p->obj_vrel_lat |= unpack_right_shift_u16(src_p[7], 0u, 0xffu);

    return (0);
}

int sr439_obj_general_info_rr_init(struct sr439_obj_general_info_rr_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct sr439_obj_general_info_rr_t));

    return 0;
}

uint8_t sr439_obj_general_info_rr_obj_id_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_general_info_rr_obj_id_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_general_info_rr_obj_id_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint16_t sr439_obj_general_info_rr_obj_dist_long_encode(double value)
{
    return (uint16_t)((value - -60.0) / 0.0625);
}

double sr439_obj_general_info_rr_obj_dist_long_decode(uint16_t value)
{
    return (((double)value * 0.0625) + -60.0);
}

bool sr439_obj_general_info_rr_obj_dist_long_is_in_range(uint16_t value)
{
    return (value <= 3360u);
}

uint16_t sr439_obj_general_info_rr_obj_dist_lat_encode(double value)
{
    return (uint16_t)((value - -128.0) / 0.0078);
}

double sr439_obj_general_info_rr_obj_dist_lat_decode(uint16_t value)
{
    return (((double)value * 0.0078) + -128.0);
}

bool sr439_obj_general_info_rr_obj_dist_lat_is_in_range(uint16_t value)
{
    return (value <= 32804u);
}

uint8_t sr439_obj_general_info_rr_obj_dyn_prop_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_general_info_rr_obj_dyn_prop_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_general_info_rr_obj_dyn_prop_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint16_t sr439_obj_general_info_rr_obj_vrel_long_encode(double value)
{
    return (uint16_t)((value - -102.0) / 0.05);
}

double sr439_obj_general_info_rr_obj_vrel_long_decode(uint16_t value)
{
    return (((double)value * 0.05) + -102.0);
}

bool sr439_obj_general_info_rr_obj_vrel_long_is_in_range(uint16_t value)
{
    return (value <= 4095u);
}

uint16_t sr439_obj_general_info_rr_obj_vrel_lat_encode(double value)
{
    return (uint16_t)((value - -102.0) / 0.05);
}

double sr439_obj_general_info_rr_obj_vrel_lat_decode(uint16_t value)
{
    return (((double)value * 0.05) + -102.0);
}

bool sr439_obj_general_info_rr_obj_vrel_lat_is_in_range(uint16_t value)
{
    return (value <= 4095u);
}

int sr439_obj_general_info_fr_pack(
    uint8_t *dst_p,
    const struct sr439_obj_general_info_fr_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[0] |= pack_left_shift_u8(src_p->obj_id, 0u, 0xffu);
    dst_p[1] |= pack_right_shift_u16(src_p->obj_dist_long, 4u, 0xffu);
    dst_p[2] |= pack_left_shift_u16(src_p->obj_dist_long, 4u, 0xf0u);
    dst_p[2] |= pack_right_shift_u16(src_p->obj_dist_lat, 11u, 0x0fu);
    dst_p[3] |= pack_right_shift_u16(src_p->obj_dist_lat, 3u, 0xffu);
    dst_p[4] |= pack_left_shift_u16(src_p->obj_dist_lat, 5u, 0xe0u);
    dst_p[4] |= pack_left_shift_u8(src_p->obj_dyn_prop, 0u, 0x0fu);
    dst_p[5] |= pack_right_shift_u16(src_p->obj_vrel_long, 4u, 0xffu);
    dst_p[6] |= pack_left_shift_u16(src_p->obj_vrel_long, 4u, 0xf0u);
    dst_p[6] |= pack_right_shift_u16(src_p->obj_vrel_lat, 8u, 0x0fu);
    dst_p[7] |= pack_left_shift_u16(src_p->obj_vrel_lat, 0u, 0xffu);

    return (8);
}

int sr439_obj_general_info_fr_unpack(
    struct sr439_obj_general_info_fr_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->obj_id = unpack_right_shift_u8(src_p[0], 0u, 0xffu);
    dst_p->obj_dist_long = unpack_left_shift_u16(src_p[1], 4u, 0xffu);
    dst_p->obj_dist_long |= unpack_right_shift_u16(src_p[2], 4u, 0xf0u);
    dst_p->obj_dist_lat = unpack_left_shift_u16(src_p[2], 11u, 0x0fu);
    dst_p->obj_dist_lat |= unpack_left_shift_u16(src_p[3], 3u, 0xffu);
    dst_p->obj_dist_lat |= unpack_right_shift_u16(src_p[4], 5u, 0xe0u);
    dst_p->obj_dyn_prop = unpack_right_shift_u8(src_p[4], 0u, 0x0fu);
    dst_p->obj_vrel_long = unpack_left_shift_u16(src_p[5], 4u, 0xffu);
    dst_p->obj_vrel_long |= unpack_right_shift_u16(src_p[6], 4u, 0xf0u);
    dst_p->obj_vrel_lat = unpack_left_shift_u16(src_p[6], 8u, 0x0fu);
    dst_p->obj_vrel_lat |= unpack_right_shift_u16(src_p[7], 0u, 0xffu);

    return (0);
}

int sr439_obj_general_info_fr_init(struct sr439_obj_general_info_fr_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct sr439_obj_general_info_fr_t));

    return 0;
}

uint8_t sr439_obj_general_info_fr_obj_id_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_general_info_fr_obj_id_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_general_info_fr_obj_id_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint16_t sr439_obj_general_info_fr_obj_dist_long_encode(double value)
{
    return (uint16_t)((value - -60.0) / 0.0625);
}

double sr439_obj_general_info_fr_obj_dist_long_decode(uint16_t value)
{
    return (((double)value * 0.0625) + -60.0);
}

bool sr439_obj_general_info_fr_obj_dist_long_is_in_range(uint16_t value)
{
    return (value <= 3360u);
}

uint16_t sr439_obj_general_info_fr_obj_dist_lat_encode(double value)
{
    return (uint16_t)((value - -128.0) / 0.0078);
}

double sr439_obj_general_info_fr_obj_dist_lat_decode(uint16_t value)
{
    return (((double)value * 0.0078) + -128.0);
}

bool sr439_obj_general_info_fr_obj_dist_lat_is_in_range(uint16_t value)
{
    return (value <= 32804u);
}

uint8_t sr439_obj_general_info_fr_obj_dyn_prop_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_general_info_fr_obj_dyn_prop_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_general_info_fr_obj_dyn_prop_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint16_t sr439_obj_general_info_fr_obj_vrel_long_encode(double value)
{
    return (uint16_t)((value - -102.0) / 0.05);
}

double sr439_obj_general_info_fr_obj_vrel_long_decode(uint16_t value)
{
    return (((double)value * 0.05) + -102.0);
}

bool sr439_obj_general_info_fr_obj_vrel_long_is_in_range(uint16_t value)
{
    return (value <= 4095u);
}

uint16_t sr439_obj_general_info_fr_obj_vrel_lat_encode(double value)
{
    return (uint16_t)((value - -102.0) / 0.05);
}

double sr439_obj_general_info_fr_obj_vrel_lat_decode(uint16_t value)
{
    return (((double)value * 0.05) + -102.0);
}

bool sr439_obj_general_info_fr_obj_vrel_lat_is_in_range(uint16_t value)
{
    return (value <= 4095u);
}

int sr439_obj_general_info_fl_pack(
    uint8_t *dst_p,
    const struct sr439_obj_general_info_fl_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[0] |= pack_left_shift_u8(src_p->obj_id, 0u, 0xffu);
    dst_p[1] |= pack_right_shift_u16(src_p->obj_dist_long, 4u, 0xffu);
    dst_p[2] |= pack_left_shift_u16(src_p->obj_dist_long, 4u, 0xf0u);
    dst_p[2] |= pack_right_shift_u16(src_p->obj_dist_lat, 11u, 0x0fu);
    dst_p[3] |= pack_right_shift_u16(src_p->obj_dist_lat, 3u, 0xffu);
    dst_p[4] |= pack_left_shift_u16(src_p->obj_dist_lat, 5u, 0xe0u);
    dst_p[4] |= pack_left_shift_u8(src_p->obj_dyn_prop, 0u, 0x0fu);
    dst_p[5] |= pack_right_shift_u16(src_p->obj_vrel_long, 4u, 0xffu);
    dst_p[6] |= pack_left_shift_u16(src_p->obj_vrel_long, 4u, 0xf0u);
    dst_p[6] |= pack_right_shift_u16(src_p->obj_vrel_lat, 8u, 0x0fu);
    dst_p[7] |= pack_left_shift_u16(src_p->obj_vrel_lat, 0u, 0xffu);

    return (8);
}

int sr439_obj_general_info_fl_unpack(
    struct sr439_obj_general_info_fl_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->obj_id = unpack_right_shift_u8(src_p[0], 0u, 0xffu);
    dst_p->obj_dist_long = unpack_left_shift_u16(src_p[1], 4u, 0xffu);
    dst_p->obj_dist_long |= unpack_right_shift_u16(src_p[2], 4u, 0xf0u);
    dst_p->obj_dist_lat = unpack_left_shift_u16(src_p[2], 11u, 0x0fu);
    dst_p->obj_dist_lat |= unpack_left_shift_u16(src_p[3], 3u, 0xffu);
    dst_p->obj_dist_lat |= unpack_right_shift_u16(src_p[4], 5u, 0xe0u);
    dst_p->obj_dyn_prop = unpack_right_shift_u8(src_p[4], 0u, 0x0fu);
    dst_p->obj_vrel_long = unpack_left_shift_u16(src_p[5], 4u, 0xffu);
    dst_p->obj_vrel_long |= unpack_right_shift_u16(src_p[6], 4u, 0xf0u);
    dst_p->obj_vrel_lat = unpack_left_shift_u16(src_p[6], 8u, 0x0fu);
    dst_p->obj_vrel_lat |= unpack_right_shift_u16(src_p[7], 0u, 0xffu);

    return (0);
}

int sr439_obj_general_info_fl_init(struct sr439_obj_general_info_fl_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct sr439_obj_general_info_fl_t));

    return 0;
}

uint8_t sr439_obj_general_info_fl_obj_id_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_general_info_fl_obj_id_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_general_info_fl_obj_id_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint16_t sr439_obj_general_info_fl_obj_dist_long_encode(double value)
{
    return (uint16_t)((value - -60.0) / 0.0625);
}

double sr439_obj_general_info_fl_obj_dist_long_decode(uint16_t value)
{
    return (((double)value * 0.0625) + -60.0);
}

bool sr439_obj_general_info_fl_obj_dist_long_is_in_range(uint16_t value)
{
    return (value <= 3360u);
}

uint16_t sr439_obj_general_info_fl_obj_dist_lat_encode(double value)
{
    return (uint16_t)((value - -128.0) / 0.0078);
}

double sr439_obj_general_info_fl_obj_dist_lat_decode(uint16_t value)
{
    return (((double)value * 0.0078) + -128.0);
}

bool sr439_obj_general_info_fl_obj_dist_lat_is_in_range(uint16_t value)
{
    return (value <= 32804u);
}

uint8_t sr439_obj_general_info_fl_obj_dyn_prop_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_general_info_fl_obj_dyn_prop_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_general_info_fl_obj_dyn_prop_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint16_t sr439_obj_general_info_fl_obj_vrel_long_encode(double value)
{
    return (uint16_t)((value - -102.0) / 0.05);
}

double sr439_obj_general_info_fl_obj_vrel_long_decode(uint16_t value)
{
    return (((double)value * 0.05) + -102.0);
}

bool sr439_obj_general_info_fl_obj_vrel_long_is_in_range(uint16_t value)
{
    return (value <= 4095u);
}

uint16_t sr439_obj_general_info_fl_obj_vrel_lat_encode(double value)
{
    return (uint16_t)((value - -102.0) / 0.05);
}

double sr439_obj_general_info_fl_obj_vrel_lat_decode(uint16_t value)
{
    return (((double)value * 0.05) + -102.0);
}

bool sr439_obj_general_info_fl_obj_vrel_lat_is_in_range(uint16_t value)
{
    return (value <= 4095u);
}

int sr439_obj_extended_info_rr_pack(
    uint8_t *dst_p,
    const struct sr439_obj_extended_info_rr_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[0] |= pack_left_shift_u8(src_p->obj_id, 0u, 0xffu);
    dst_p[1] |= pack_right_shift_u16(src_p->obj_arel_lon, 3u, 0xffu);
    dst_p[2] |= pack_left_shift_u16(src_p->obj_arel_lon, 5u, 0xe0u);
    dst_p[2] |= pack_right_shift_u16(src_p->obj_arel_lat, 6u, 0x1fu);
    dst_p[3] |= pack_left_shift_u16(src_p->obj_arel_lat, 2u, 0xfcu);
    dst_p[3] |= pack_right_shift_u8(src_p->obj_class, 1u, 0x03u);
    dst_p[4] |= pack_left_shift_u8(src_p->obj_class, 7u, 0x80u);
    dst_p[4] |= pack_right_shift_u16(src_p->obj_orien_angle, 3u, 0x7fu);
    dst_p[5] |= pack_left_shift_u16(src_p->obj_orien_angle, 5u, 0xe0u);
    dst_p[5] |= pack_left_shift_u8(src_p->obj_width, 0u, 0x1fu);
    dst_p[6] |= pack_left_shift_u8(src_p->obj_length, 0u, 0xffu);
    dst_p[7] |= pack_left_shift_u8(src_p->obj_height, 3u, 0xf8u);

    return (8);
}

int sr439_obj_extended_info_rr_unpack(
    struct sr439_obj_extended_info_rr_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->obj_id = unpack_right_shift_u8(src_p[0], 0u, 0xffu);
    dst_p->obj_arel_lon = unpack_left_shift_u16(src_p[1], 3u, 0xffu);
    dst_p->obj_arel_lon |= unpack_right_shift_u16(src_p[2], 5u, 0xe0u);
    dst_p->obj_arel_lat = unpack_left_shift_u16(src_p[2], 6u, 0x1fu);
    dst_p->obj_arel_lat |= unpack_right_shift_u16(src_p[3], 2u, 0xfcu);
    dst_p->obj_class = unpack_left_shift_u8(src_p[3], 1u, 0x03u);
    dst_p->obj_class |= unpack_right_shift_u8(src_p[4], 7u, 0x80u);
    dst_p->obj_orien_angle = unpack_left_shift_u16(src_p[4], 3u, 0x7fu);
    dst_p->obj_orien_angle |= unpack_right_shift_u16(src_p[5], 5u, 0xe0u);
    dst_p->obj_width = unpack_right_shift_u8(src_p[5], 0u, 0x1fu);
    dst_p->obj_length = unpack_right_shift_u8(src_p[6], 0u, 0xffu);
    dst_p->obj_height = unpack_right_shift_u8(src_p[7], 3u, 0xf8u);

    return (0);
}

int sr439_obj_extended_info_rr_init(struct sr439_obj_extended_info_rr_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct sr439_obj_extended_info_rr_t));

    return 0;
}

uint8_t sr439_obj_extended_info_rr_obj_id_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_extended_info_rr_obj_id_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_extended_info_rr_obj_id_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint16_t sr439_obj_extended_info_rr_obj_arel_lon_encode(double value)
{
    return (uint16_t)((value - -40.0) / 0.04);
}

double sr439_obj_extended_info_rr_obj_arel_lon_decode(uint16_t value)
{
    return (((double)value * 0.04) + -40.0);
}

bool sr439_obj_extended_info_rr_obj_arel_lon_is_in_range(uint16_t value)
{
    return (value <= 2000u);
}

uint16_t sr439_obj_extended_info_rr_obj_arel_lat_encode(double value)
{
    return (uint16_t)((value - -40.0) / 0.04);
}

double sr439_obj_extended_info_rr_obj_arel_lat_decode(uint16_t value)
{
    return (((double)value * 0.04) + -40.0);
}

bool sr439_obj_extended_info_rr_obj_arel_lat_is_in_range(uint16_t value)
{
    return (value <= 2000u);
}

uint8_t sr439_obj_extended_info_rr_obj_class_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_extended_info_rr_obj_class_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_extended_info_rr_obj_class_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint16_t sr439_obj_extended_info_rr_obj_orien_angle_encode(double value)
{
    return (uint16_t)((value - -180.0) / 0.4);
}

double sr439_obj_extended_info_rr_obj_orien_angle_decode(uint16_t value)
{
    return (((double)value * 0.4) + -180.0);
}

bool sr439_obj_extended_info_rr_obj_orien_angle_is_in_range(uint16_t value)
{
    return (value <= 900u);
}

uint8_t sr439_obj_extended_info_rr_obj_width_encode(double value)
{
    return (uint8_t)(value / 0.1);
}

double sr439_obj_extended_info_rr_obj_width_decode(uint8_t value)
{
    return ((double)value * 0.1);
}

bool sr439_obj_extended_info_rr_obj_width_is_in_range(uint8_t value)
{
    return (value <= 31u);
}

uint8_t sr439_obj_extended_info_rr_obj_length_encode(double value)
{
    return (uint8_t)(value / 0.1);
}

double sr439_obj_extended_info_rr_obj_length_decode(uint8_t value)
{
    return ((double)value * 0.1);
}

bool sr439_obj_extended_info_rr_obj_length_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint8_t sr439_obj_extended_info_rr_obj_height_encode(double value)
{
    return (uint8_t)((value - -10.0) / 0.5);
}

double sr439_obj_extended_info_rr_obj_height_decode(uint8_t value)
{
    return (((double)value * 0.5) + -10.0);
}

bool sr439_obj_extended_info_rr_obj_height_is_in_range(uint8_t value)
{
    return (value <= 63u);
}

int sr439_obj_extended_info_fr_pack(
    uint8_t *dst_p,
    const struct sr439_obj_extended_info_fr_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[0] |= pack_left_shift_u8(src_p->obj_id, 0u, 0xffu);
    dst_p[1] |= pack_right_shift_u16(src_p->obj_arel_lon, 3u, 0xffu);
    dst_p[2] |= pack_left_shift_u16(src_p->obj_arel_lon, 5u, 0xe0u);
    dst_p[2] |= pack_right_shift_u16(src_p->obj_arel_lat, 6u, 0x1fu);
    dst_p[3] |= pack_left_shift_u16(src_p->obj_arel_lat, 2u, 0xfcu);
    dst_p[3] |= pack_right_shift_u8(src_p->obj_class, 1u, 0x03u);
    dst_p[4] |= pack_left_shift_u8(src_p->obj_class, 7u, 0x80u);
    dst_p[4] |= pack_right_shift_u16(src_p->obj_orien_angle, 3u, 0x7fu);
    dst_p[5] |= pack_left_shift_u16(src_p->obj_orien_angle, 5u, 0xe0u);
    dst_p[5] |= pack_left_shift_u8(src_p->obj_width, 0u, 0x1fu);
    dst_p[6] |= pack_left_shift_u8(src_p->obj_length, 0u, 0xffu);
    dst_p[7] |= pack_left_shift_u8(src_p->obj_height, 3u, 0xf8u);

    return (8);
}

int sr439_obj_extended_info_fr_unpack(
    struct sr439_obj_extended_info_fr_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->obj_id = unpack_right_shift_u8(src_p[0], 0u, 0xffu);
    dst_p->obj_arel_lon = unpack_left_shift_u16(src_p[1], 3u, 0xffu);
    dst_p->obj_arel_lon |= unpack_right_shift_u16(src_p[2], 5u, 0xe0u);
    dst_p->obj_arel_lat = unpack_left_shift_u16(src_p[2], 6u, 0x1fu);
    dst_p->obj_arel_lat |= unpack_right_shift_u16(src_p[3], 2u, 0xfcu);
    dst_p->obj_class = unpack_left_shift_u8(src_p[3], 1u, 0x03u);
    dst_p->obj_class |= unpack_right_shift_u8(src_p[4], 7u, 0x80u);
    dst_p->obj_orien_angle = unpack_left_shift_u16(src_p[4], 3u, 0x7fu);
    dst_p->obj_orien_angle |= unpack_right_shift_u16(src_p[5], 5u, 0xe0u);
    dst_p->obj_width = unpack_right_shift_u8(src_p[5], 0u, 0x1fu);
    dst_p->obj_length = unpack_right_shift_u8(src_p[6], 0u, 0xffu);
    dst_p->obj_height = unpack_right_shift_u8(src_p[7], 3u, 0xf8u);

    return (0);
}

int sr439_obj_extended_info_fr_init(struct sr439_obj_extended_info_fr_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct sr439_obj_extended_info_fr_t));

    return 0;
}

uint8_t sr439_obj_extended_info_fr_obj_id_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_extended_info_fr_obj_id_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_extended_info_fr_obj_id_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint16_t sr439_obj_extended_info_fr_obj_arel_lon_encode(double value)
{
    return (uint16_t)((value - -40.0) / 0.04);
}

double sr439_obj_extended_info_fr_obj_arel_lon_decode(uint16_t value)
{
    return (((double)value * 0.04) + -40.0);
}

bool sr439_obj_extended_info_fr_obj_arel_lon_is_in_range(uint16_t value)
{
    return (value <= 2000u);
}

uint16_t sr439_obj_extended_info_fr_obj_arel_lat_encode(double value)
{
    return (uint16_t)((value - -40.0) / 0.04);
}

double sr439_obj_extended_info_fr_obj_arel_lat_decode(uint16_t value)
{
    return (((double)value * 0.04) + -40.0);
}

bool sr439_obj_extended_info_fr_obj_arel_lat_is_in_range(uint16_t value)
{
    return (value <= 2000u);
}

uint8_t sr439_obj_extended_info_fr_obj_class_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_extended_info_fr_obj_class_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_extended_info_fr_obj_class_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint16_t sr439_obj_extended_info_fr_obj_orien_angle_encode(double value)
{
    return (uint16_t)((value - -180.0) / 0.4);
}

double sr439_obj_extended_info_fr_obj_orien_angle_decode(uint16_t value)
{
    return (((double)value * 0.4) + -180.0);
}

bool sr439_obj_extended_info_fr_obj_orien_angle_is_in_range(uint16_t value)
{
    return (value <= 900u);
}

uint8_t sr439_obj_extended_info_fr_obj_width_encode(double value)
{
    return (uint8_t)(value / 0.1);
}

double sr439_obj_extended_info_fr_obj_width_decode(uint8_t value)
{
    return ((double)value * 0.1);
}

bool sr439_obj_extended_info_fr_obj_width_is_in_range(uint8_t value)
{
    return (value <= 31u);
}

uint8_t sr439_obj_extended_info_fr_obj_length_encode(double value)
{
    return (uint8_t)(value / 0.1);
}

double sr439_obj_extended_info_fr_obj_length_decode(uint8_t value)
{
    return ((double)value * 0.1);
}

bool sr439_obj_extended_info_fr_obj_length_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint8_t sr439_obj_extended_info_fr_obj_height_encode(double value)
{
    return (uint8_t)((value - -10.0) / 0.5);
}

double sr439_obj_extended_info_fr_obj_height_decode(uint8_t value)
{
    return (((double)value * 0.5) + -10.0);
}

bool sr439_obj_extended_info_fr_obj_height_is_in_range(uint8_t value)
{
    return (value <= 63u);
}

int sr439_obj_extended_info_fl_pack(
    uint8_t *dst_p,
    const struct sr439_obj_extended_info_fl_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[0] |= pack_left_shift_u8(src_p->obj_id, 0u, 0xffu);
    dst_p[1] |= pack_right_shift_u16(src_p->obj_arel_lon, 3u, 0xffu);
    dst_p[2] |= pack_left_shift_u16(src_p->obj_arel_lon, 5u, 0xe0u);
    dst_p[2] |= pack_right_shift_u16(src_p->obj_arel_lat, 6u, 0x1fu);
    dst_p[3] |= pack_left_shift_u16(src_p->obj_arel_lat, 2u, 0xfcu);
    dst_p[3] |= pack_right_shift_u8(src_p->obj_class, 1u, 0x03u);
    dst_p[4] |= pack_left_shift_u8(src_p->obj_class, 7u, 0x80u);
    dst_p[4] |= pack_right_shift_u16(src_p->obj_orien_angle, 3u, 0x7fu);
    dst_p[5] |= pack_left_shift_u16(src_p->obj_orien_angle, 5u, 0xe0u);
    dst_p[5] |= pack_left_shift_u8(src_p->obj_width, 0u, 0x1fu);
    dst_p[6] |= pack_left_shift_u8(src_p->obj_length, 0u, 0xffu);
    dst_p[7] |= pack_left_shift_u8(src_p->obj_height, 3u, 0xf8u);

    return (8);
}

int sr439_obj_extended_info_fl_unpack(
    struct sr439_obj_extended_info_fl_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->obj_id = unpack_right_shift_u8(src_p[0], 0u, 0xffu);
    dst_p->obj_arel_lon = unpack_left_shift_u16(src_p[1], 3u, 0xffu);
    dst_p->obj_arel_lon |= unpack_right_shift_u16(src_p[2], 5u, 0xe0u);
    dst_p->obj_arel_lat = unpack_left_shift_u16(src_p[2], 6u, 0x1fu);
    dst_p->obj_arel_lat |= unpack_right_shift_u16(src_p[3], 2u, 0xfcu);
    dst_p->obj_class = unpack_left_shift_u8(src_p[3], 1u, 0x03u);
    dst_p->obj_class |= unpack_right_shift_u8(src_p[4], 7u, 0x80u);
    dst_p->obj_orien_angle = unpack_left_shift_u16(src_p[4], 3u, 0x7fu);
    dst_p->obj_orien_angle |= unpack_right_shift_u16(src_p[5], 5u, 0xe0u);
    dst_p->obj_width = unpack_right_shift_u8(src_p[5], 0u, 0x1fu);
    dst_p->obj_length = unpack_right_shift_u8(src_p[6], 0u, 0xffu);
    dst_p->obj_height = unpack_right_shift_u8(src_p[7], 3u, 0xf8u);

    return (0);
}

int sr439_obj_extended_info_fl_init(struct sr439_obj_extended_info_fl_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct sr439_obj_extended_info_fl_t));

    return 0;
}

uint8_t sr439_obj_extended_info_fl_obj_id_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_extended_info_fl_obj_id_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_extended_info_fl_obj_id_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint16_t sr439_obj_extended_info_fl_obj_arel_lon_encode(double value)
{
    return (uint16_t)((value - -40.0) / 0.04);
}

double sr439_obj_extended_info_fl_obj_arel_lon_decode(uint16_t value)
{
    return (((double)value * 0.04) + -40.0);
}

bool sr439_obj_extended_info_fl_obj_arel_lon_is_in_range(uint16_t value)
{
    return (value <= 2000u);
}

uint16_t sr439_obj_extended_info_fl_obj_arel_lat_encode(double value)
{
    return (uint16_t)((value - -40.0) / 0.04);
}

double sr439_obj_extended_info_fl_obj_arel_lat_decode(uint16_t value)
{
    return (((double)value * 0.04) + -40.0);
}

bool sr439_obj_extended_info_fl_obj_arel_lat_is_in_range(uint16_t value)
{
    return (value <= 2000u);
}

uint8_t sr439_obj_extended_info_fl_obj_class_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_extended_info_fl_obj_class_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_extended_info_fl_obj_class_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint16_t sr439_obj_extended_info_fl_obj_orien_angle_encode(double value)
{
    return (uint16_t)((value - -180.0) / 0.4);
}

double sr439_obj_extended_info_fl_obj_orien_angle_decode(uint16_t value)
{
    return (((double)value * 0.4) + -180.0);
}

bool sr439_obj_extended_info_fl_obj_orien_angle_is_in_range(uint16_t value)
{
    return (value <= 900u);
}

uint8_t sr439_obj_extended_info_fl_obj_width_encode(double value)
{
    return (uint8_t)(value / 0.1);
}

double sr439_obj_extended_info_fl_obj_width_decode(uint8_t value)
{
    return ((double)value * 0.1);
}

bool sr439_obj_extended_info_fl_obj_width_is_in_range(uint8_t value)
{
    return (value <= 31u);
}

uint8_t sr439_obj_extended_info_fl_obj_length_encode(double value)
{
    return (uint8_t)(value / 0.1);
}

double sr439_obj_extended_info_fl_obj_length_decode(uint8_t value)
{
    return ((double)value * 0.1);
}

bool sr439_obj_extended_info_fl_obj_length_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint8_t sr439_obj_extended_info_fl_obj_height_encode(double value)
{
    return (uint8_t)((value - -10.0) / 0.5);
}

double sr439_obj_extended_info_fl_obj_height_decode(uint8_t value)
{
    return (((double)value * 0.5) + -10.0);
}

bool sr439_obj_extended_info_fl_obj_height_is_in_range(uint8_t value)
{
    return (value <= 63u);
}

int sr439_obj_collision_info_rr_pack(
    uint8_t *dst_p,
    const struct sr439_obj_collision_info_rr_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[0] |= pack_left_shift_u8(src_p->obj_id, 0u, 0xffu);
    dst_p[1] |= pack_left_shift_u8(src_p->obj_ref_point, 4u, 0xf0u);
    dst_p[1] |= pack_left_shift_u8(src_p->obj_track_state, 1u, 0x0eu);
    dst_p[1] |= pack_right_shift_u8(src_p->obj_corner_rel_wid, 4u, 0x01u);
    dst_p[2] |= pack_left_shift_u8(src_p->obj_corner_rel_wid, 4u, 0xf0u);
    dst_p[2] |= pack_right_shift_u8(src_p->obj_corner_rel_len, 2u, 0x0fu);
    dst_p[3] |= pack_left_shift_u8(src_p->obj_corner_rel_len, 6u, 0xc0u);
    dst_p[3] |= pack_right_shift_u16(src_p->obj_yaw_rate, 4u, 0x3fu);
    dst_p[4] |= pack_left_shift_u16(src_p->obj_yaw_rate, 4u, 0xf0u);

    return (8);
}

int sr439_obj_collision_info_rr_unpack(
    struct sr439_obj_collision_info_rr_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->obj_id = unpack_right_shift_u8(src_p[0], 0u, 0xffu);
    dst_p->obj_ref_point = unpack_right_shift_u8(src_p[1], 4u, 0xf0u);
    dst_p->obj_track_state = unpack_right_shift_u8(src_p[1], 1u, 0x0eu);
    dst_p->obj_corner_rel_wid = unpack_left_shift_u8(src_p[1], 4u, 0x01u);
    dst_p->obj_corner_rel_wid |= unpack_right_shift_u8(src_p[2], 4u, 0xf0u);
    dst_p->obj_corner_rel_len = unpack_left_shift_u8(src_p[2], 2u, 0x0fu);
    dst_p->obj_corner_rel_len |= unpack_right_shift_u8(src_p[3], 6u, 0xc0u);
    dst_p->obj_yaw_rate = unpack_left_shift_u16(src_p[3], 4u, 0x3fu);
    dst_p->obj_yaw_rate |= unpack_right_shift_u16(src_p[4], 4u, 0xf0u);

    return (0);
}

int sr439_obj_collision_info_rr_init(struct sr439_obj_collision_info_rr_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct sr439_obj_collision_info_rr_t));

    return 0;
}

uint8_t sr439_obj_collision_info_rr_obj_id_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_collision_info_rr_obj_id_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_collision_info_rr_obj_id_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint8_t sr439_obj_collision_info_rr_obj_ref_point_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_collision_info_rr_obj_ref_point_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_collision_info_rr_obj_ref_point_is_in_range(uint8_t value)
{
    return (value <= 9u);
}

uint8_t sr439_obj_collision_info_rr_obj_track_state_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_collision_info_rr_obj_track_state_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_collision_info_rr_obj_track_state_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t sr439_obj_collision_info_rr_obj_corner_rel_wid_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_collision_info_rr_obj_corner_rel_wid_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_collision_info_rr_obj_corner_rel_wid_is_in_range(uint8_t value)
{
    return (value <= 31u);
}

uint8_t sr439_obj_collision_info_rr_obj_corner_rel_len_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_collision_info_rr_obj_corner_rel_len_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_collision_info_rr_obj_corner_rel_len_is_in_range(uint8_t value)
{
    return (value <= 63u);
}

uint16_t sr439_obj_collision_info_rr_obj_yaw_rate_encode(double value)
{
    return (uint16_t)((value - -3.14) / 0.01);
}

double sr439_obj_collision_info_rr_obj_yaw_rate_decode(uint16_t value)
{
    return (((double)value * 0.01) + -3.14);
}

bool sr439_obj_collision_info_rr_obj_yaw_rate_is_in_range(uint16_t value)
{
    return (value <= 628u);
}

int sr439_obj_collision_info_fr_pack(
    uint8_t *dst_p,
    const struct sr439_obj_collision_info_fr_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[0] |= pack_left_shift_u8(src_p->obj_id, 0u, 0xffu);
    dst_p[1] |= pack_left_shift_u8(src_p->obj_ref_point, 4u, 0xf0u);
    dst_p[1] |= pack_left_shift_u8(src_p->obj_track_state, 1u, 0x0eu);
    dst_p[1] |= pack_right_shift_u8(src_p->obj_corner_rel_wid, 4u, 0x01u);
    dst_p[2] |= pack_left_shift_u8(src_p->obj_corner_rel_wid, 4u, 0xf0u);
    dst_p[2] |= pack_right_shift_u8(src_p->obj_corner_rel_len, 2u, 0x0fu);
    dst_p[3] |= pack_left_shift_u8(src_p->obj_corner_rel_len, 6u, 0xc0u);
    dst_p[3] |= pack_right_shift_u16(src_p->obj_yaw_rate, 4u, 0x3fu);
    dst_p[4] |= pack_left_shift_u16(src_p->obj_yaw_rate, 4u, 0xf0u);

    return (8);
}

int sr439_obj_collision_info_fr_unpack(
    struct sr439_obj_collision_info_fr_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->obj_id = unpack_right_shift_u8(src_p[0], 0u, 0xffu);
    dst_p->obj_ref_point = unpack_right_shift_u8(src_p[1], 4u, 0xf0u);
    dst_p->obj_track_state = unpack_right_shift_u8(src_p[1], 1u, 0x0eu);
    dst_p->obj_corner_rel_wid = unpack_left_shift_u8(src_p[1], 4u, 0x01u);
    dst_p->obj_corner_rel_wid |= unpack_right_shift_u8(src_p[2], 4u, 0xf0u);
    dst_p->obj_corner_rel_len = unpack_left_shift_u8(src_p[2], 2u, 0x0fu);
    dst_p->obj_corner_rel_len |= unpack_right_shift_u8(src_p[3], 6u, 0xc0u);
    dst_p->obj_yaw_rate = unpack_left_shift_u16(src_p[3], 4u, 0x3fu);
    dst_p->obj_yaw_rate |= unpack_right_shift_u16(src_p[4], 4u, 0xf0u);

    return (0);
}

int sr439_obj_collision_info_fr_init(struct sr439_obj_collision_info_fr_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct sr439_obj_collision_info_fr_t));

    return 0;
}

uint8_t sr439_obj_collision_info_fr_obj_id_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_collision_info_fr_obj_id_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_collision_info_fr_obj_id_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint8_t sr439_obj_collision_info_fr_obj_ref_point_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_collision_info_fr_obj_ref_point_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_collision_info_fr_obj_ref_point_is_in_range(uint8_t value)
{
    return (value <= 9u);
}

uint8_t sr439_obj_collision_info_fr_obj_track_state_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_collision_info_fr_obj_track_state_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_collision_info_fr_obj_track_state_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t sr439_obj_collision_info_fr_obj_corner_rel_wid_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_collision_info_fr_obj_corner_rel_wid_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_collision_info_fr_obj_corner_rel_wid_is_in_range(uint8_t value)
{
    return (value <= 31u);
}

uint8_t sr439_obj_collision_info_fr_obj_corner_rel_len_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_collision_info_fr_obj_corner_rel_len_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_collision_info_fr_obj_corner_rel_len_is_in_range(uint8_t value)
{
    return (value <= 63u);
}

uint16_t sr439_obj_collision_info_fr_obj_yaw_rate_encode(double value)
{
    return (uint16_t)((value - -3.14) / 0.01);
}

double sr439_obj_collision_info_fr_obj_yaw_rate_decode(uint16_t value)
{
    return (((double)value * 0.01) + -3.14);
}

bool sr439_obj_collision_info_fr_obj_yaw_rate_is_in_range(uint16_t value)
{
    return (value <= 628u);
}

int sr439_obj_collision_info_fl_pack(
    uint8_t *dst_p,
    const struct sr439_obj_collision_info_fl_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[0] |= pack_left_shift_u8(src_p->obj_id, 0u, 0xffu);
    dst_p[1] |= pack_left_shift_u8(src_p->obj_ref_point, 4u, 0xf0u);
    dst_p[1] |= pack_left_shift_u8(src_p->obj_track_state, 1u, 0x0eu);
    dst_p[1] |= pack_right_shift_u8(src_p->obj_corner_rel_wid, 4u, 0x01u);
    dst_p[2] |= pack_left_shift_u8(src_p->obj_corner_rel_wid, 4u, 0xf0u);
    dst_p[2] |= pack_right_shift_u8(src_p->obj_corner_rel_len, 2u, 0x0fu);
    dst_p[3] |= pack_left_shift_u8(src_p->obj_corner_rel_len, 6u, 0xc0u);
    dst_p[3] |= pack_right_shift_u16(src_p->obj_yaw_rate, 4u, 0x3fu);
    dst_p[4] |= pack_left_shift_u16(src_p->obj_yaw_rate, 4u, 0xf0u);

    return (8);
}

int sr439_obj_collision_info_fl_unpack(
    struct sr439_obj_collision_info_fl_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->obj_id = unpack_right_shift_u8(src_p[0], 0u, 0xffu);
    dst_p->obj_ref_point = unpack_right_shift_u8(src_p[1], 4u, 0xf0u);
    dst_p->obj_track_state = unpack_right_shift_u8(src_p[1], 1u, 0x0eu);
    dst_p->obj_corner_rel_wid = unpack_left_shift_u8(src_p[1], 4u, 0x01u);
    dst_p->obj_corner_rel_wid |= unpack_right_shift_u8(src_p[2], 4u, 0xf0u);
    dst_p->obj_corner_rel_len = unpack_left_shift_u8(src_p[2], 2u, 0x0fu);
    dst_p->obj_corner_rel_len |= unpack_right_shift_u8(src_p[3], 6u, 0xc0u);
    dst_p->obj_yaw_rate = unpack_left_shift_u16(src_p[3], 4u, 0x3fu);
    dst_p->obj_yaw_rate |= unpack_right_shift_u16(src_p[4], 4u, 0xf0u);

    return (0);
}

int sr439_obj_collision_info_fl_init(struct sr439_obj_collision_info_fl_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct sr439_obj_collision_info_fl_t));

    return 0;
}

uint8_t sr439_obj_collision_info_fl_obj_id_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_collision_info_fl_obj_id_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_collision_info_fl_obj_id_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint8_t sr439_obj_collision_info_fl_obj_ref_point_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_collision_info_fl_obj_ref_point_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_collision_info_fl_obj_ref_point_is_in_range(uint8_t value)
{
    return (value <= 9u);
}

uint8_t sr439_obj_collision_info_fl_obj_track_state_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_collision_info_fl_obj_track_state_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_collision_info_fl_obj_track_state_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t sr439_obj_collision_info_fl_obj_corner_rel_wid_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_collision_info_fl_obj_corner_rel_wid_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_collision_info_fl_obj_corner_rel_wid_is_in_range(uint8_t value)
{
    return (value <= 31u);
}

uint8_t sr439_obj_collision_info_fl_obj_corner_rel_len_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_collision_info_fl_obj_corner_rel_len_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_collision_info_fl_obj_corner_rel_len_is_in_range(uint8_t value)
{
    return (value <= 63u);
}

uint16_t sr439_obj_collision_info_fl_obj_yaw_rate_encode(double value)
{
    return (uint16_t)((value - -3.14) / 0.01);
}

double sr439_obj_collision_info_fl_obj_yaw_rate_decode(uint16_t value)
{
    return (((double)value * 0.01) + -3.14);
}

bool sr439_obj_collision_info_fl_obj_yaw_rate_is_in_range(uint16_t value)
{
    return (value <= 628u);
}

int sr439_obj_0_status_rr_pack(
    uint8_t *dst_p,
    const struct sr439_obj_0_status_rr_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[0] |= pack_left_shift_u8(src_p->obj_nof_object, 0u, 0xffu);
    dst_p[1] |= pack_right_shift_u16(src_p->obj_meas_counter, 8u, 0xffu);
    dst_p[2] |= pack_left_shift_u16(src_p->obj_meas_counter, 0u, 0xffu);
    dst_p[3] |= pack_left_shift_u8(src_p->obj_interface_version, 4u, 0xf0u);
    dst_p[3] |= pack_left_shift_u8(src_p->obj_bsd_warning, 2u, 0x0cu);
    dst_p[3] |= pack_left_shift_u8(src_p->obj_lca_warning, 0u, 0x03u);
    dst_p[4] |= pack_left_shift_u8(src_p->obj_dow_warning, 6u, 0xc0u);
    dst_p[4] |= pack_left_shift_u8(src_p->obj_rcta_warning, 4u, 0x30u);
    dst_p[4] |= pack_left_shift_u8(src_p->obj_rctb_warning, 2u, 0x0cu);
    dst_p[4] |= pack_left_shift_u8(src_p->obj_fcta_warning, 0u, 0x03u);
    dst_p[5] |= pack_left_shift_u8(src_p->obj_fctb_warning, 6u, 0xc0u);
    dst_p[6] |= pack_left_shift_u8(src_p->obj_cipvid, 0u, 0xffu);

    return (8);
}

int sr439_obj_0_status_rr_unpack(
    struct sr439_obj_0_status_rr_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->obj_nof_object = unpack_right_shift_u8(src_p[0], 0u, 0xffu);
    dst_p->obj_meas_counter = unpack_left_shift_u16(src_p[1], 8u, 0xffu);
    dst_p->obj_meas_counter |= unpack_right_shift_u16(src_p[2], 0u, 0xffu);
    dst_p->obj_interface_version = unpack_right_shift_u8(src_p[3], 4u, 0xf0u);
    dst_p->obj_bsd_warning = unpack_right_shift_u8(src_p[3], 2u, 0x0cu);
    dst_p->obj_lca_warning = unpack_right_shift_u8(src_p[3], 0u, 0x03u);
    dst_p->obj_dow_warning = unpack_right_shift_u8(src_p[4], 6u, 0xc0u);
    dst_p->obj_rcta_warning = unpack_right_shift_u8(src_p[4], 4u, 0x30u);
    dst_p->obj_rctb_warning = unpack_right_shift_u8(src_p[4], 2u, 0x0cu);
    dst_p->obj_fcta_warning = unpack_right_shift_u8(src_p[4], 0u, 0x03u);
    dst_p->obj_fctb_warning = unpack_right_shift_u8(src_p[5], 6u, 0xc0u);
    dst_p->obj_cipvid = unpack_right_shift_u8(src_p[6], 0u, 0xffu);

    return (0);
}

int sr439_obj_0_status_rr_init(struct sr439_obj_0_status_rr_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct sr439_obj_0_status_rr_t));

    return 0;
}

uint8_t sr439_obj_0_status_rr_obj_nof_object_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_0_status_rr_obj_nof_object_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_0_status_rr_obj_nof_object_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint16_t sr439_obj_0_status_rr_obj_meas_counter_encode(double value)
{
    return (uint16_t)(value);
}

double sr439_obj_0_status_rr_obj_meas_counter_decode(uint16_t value)
{
    return ((double)value);
}

bool sr439_obj_0_status_rr_obj_meas_counter_is_in_range(uint16_t value)
{
    (void)value;

    return (true);
}

uint8_t sr439_obj_0_status_rr_obj_interface_version_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_0_status_rr_obj_interface_version_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_0_status_rr_obj_interface_version_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint8_t sr439_obj_0_status_rr_obj_bsd_warning_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_0_status_rr_obj_bsd_warning_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_0_status_rr_obj_bsd_warning_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t sr439_obj_0_status_rr_obj_lca_warning_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_0_status_rr_obj_lca_warning_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_0_status_rr_obj_lca_warning_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t sr439_obj_0_status_rr_obj_dow_warning_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_0_status_rr_obj_dow_warning_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_0_status_rr_obj_dow_warning_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t sr439_obj_0_status_rr_obj_rcta_warning_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_0_status_rr_obj_rcta_warning_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_0_status_rr_obj_rcta_warning_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t sr439_obj_0_status_rr_obj_rctb_warning_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_0_status_rr_obj_rctb_warning_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_0_status_rr_obj_rctb_warning_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t sr439_obj_0_status_rr_obj_fcta_warning_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_0_status_rr_obj_fcta_warning_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_0_status_rr_obj_fcta_warning_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t sr439_obj_0_status_rr_obj_fctb_warning_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_0_status_rr_obj_fctb_warning_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_0_status_rr_obj_fctb_warning_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t sr439_obj_0_status_rr_obj_cipvid_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_0_status_rr_obj_cipvid_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_0_status_rr_obj_cipvid_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

int sr439_obj_0_status_fr_pack(
    uint8_t *dst_p,
    const struct sr439_obj_0_status_fr_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[0] |= pack_left_shift_u8(src_p->obj_nof_object, 0u, 0xffu);
    dst_p[1] |= pack_right_shift_u16(src_p->obj_meas_counter, 8u, 0xffu);
    dst_p[2] |= pack_left_shift_u16(src_p->obj_meas_counter, 0u, 0xffu);
    dst_p[3] |= pack_left_shift_u8(src_p->obj_interface_version, 4u, 0xf0u);
    dst_p[3] |= pack_left_shift_u8(src_p->obj_bsd_warning, 2u, 0x0cu);
    dst_p[3] |= pack_left_shift_u8(src_p->obj_lca_warning, 0u, 0x03u);
    dst_p[4] |= pack_left_shift_u8(src_p->obj_dow_warning, 6u, 0xc0u);
    dst_p[4] |= pack_left_shift_u8(src_p->obj_rcta_warning, 4u, 0x30u);
    dst_p[4] |= pack_left_shift_u8(src_p->obj_rctb_warning, 2u, 0x0cu);
    dst_p[4] |= pack_left_shift_u8(src_p->obj_fcta_warning, 0u, 0x03u);
    dst_p[5] |= pack_left_shift_u8(src_p->obj_fctb_warning, 6u, 0xc0u);
    dst_p[6] |= pack_left_shift_u8(src_p->obj_cipvid, 0u, 0xffu);

    return (8);
}

int sr439_obj_0_status_fr_unpack(
    struct sr439_obj_0_status_fr_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->obj_nof_object = unpack_right_shift_u8(src_p[0], 0u, 0xffu);
    dst_p->obj_meas_counter = unpack_left_shift_u16(src_p[1], 8u, 0xffu);
    dst_p->obj_meas_counter |= unpack_right_shift_u16(src_p[2], 0u, 0xffu);
    dst_p->obj_interface_version = unpack_right_shift_u8(src_p[3], 4u, 0xf0u);
    dst_p->obj_bsd_warning = unpack_right_shift_u8(src_p[3], 2u, 0x0cu);
    dst_p->obj_lca_warning = unpack_right_shift_u8(src_p[3], 0u, 0x03u);
    dst_p->obj_dow_warning = unpack_right_shift_u8(src_p[4], 6u, 0xc0u);
    dst_p->obj_rcta_warning = unpack_right_shift_u8(src_p[4], 4u, 0x30u);
    dst_p->obj_rctb_warning = unpack_right_shift_u8(src_p[4], 2u, 0x0cu);
    dst_p->obj_fcta_warning = unpack_right_shift_u8(src_p[4], 0u, 0x03u);
    dst_p->obj_fctb_warning = unpack_right_shift_u8(src_p[5], 6u, 0xc0u);
    dst_p->obj_cipvid = unpack_right_shift_u8(src_p[6], 0u, 0xffu);

    return (0);
}

int sr439_obj_0_status_fr_init(struct sr439_obj_0_status_fr_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct sr439_obj_0_status_fr_t));

    return 0;
}

uint8_t sr439_obj_0_status_fr_obj_nof_object_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_0_status_fr_obj_nof_object_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_0_status_fr_obj_nof_object_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint16_t sr439_obj_0_status_fr_obj_meas_counter_encode(double value)
{
    return (uint16_t)(value);
}

double sr439_obj_0_status_fr_obj_meas_counter_decode(uint16_t value)
{
    return ((double)value);
}

bool sr439_obj_0_status_fr_obj_meas_counter_is_in_range(uint16_t value)
{
    (void)value;

    return (true);
}

uint8_t sr439_obj_0_status_fr_obj_interface_version_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_0_status_fr_obj_interface_version_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_0_status_fr_obj_interface_version_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint8_t sr439_obj_0_status_fr_obj_bsd_warning_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_0_status_fr_obj_bsd_warning_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_0_status_fr_obj_bsd_warning_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t sr439_obj_0_status_fr_obj_lca_warning_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_0_status_fr_obj_lca_warning_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_0_status_fr_obj_lca_warning_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t sr439_obj_0_status_fr_obj_dow_warning_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_0_status_fr_obj_dow_warning_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_0_status_fr_obj_dow_warning_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t sr439_obj_0_status_fr_obj_rcta_warning_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_0_status_fr_obj_rcta_warning_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_0_status_fr_obj_rcta_warning_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t sr439_obj_0_status_fr_obj_rctb_warning_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_0_status_fr_obj_rctb_warning_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_0_status_fr_obj_rctb_warning_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t sr439_obj_0_status_fr_obj_fcta_warning_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_0_status_fr_obj_fcta_warning_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_0_status_fr_obj_fcta_warning_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t sr439_obj_0_status_fr_obj_fctb_warning_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_0_status_fr_obj_fctb_warning_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_0_status_fr_obj_fctb_warning_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t sr439_obj_0_status_fr_obj_cipvid_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_0_status_fr_obj_cipvid_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_0_status_fr_obj_cipvid_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

int sr439_obj_0_status_fl_pack(
    uint8_t *dst_p,
    const struct sr439_obj_0_status_fl_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[0] |= pack_left_shift_u8(src_p->obj_nof_object, 0u, 0xffu);
    dst_p[1] |= pack_right_shift_u16(src_p->obj_meas_counter, 8u, 0xffu);
    dst_p[2] |= pack_left_shift_u16(src_p->obj_meas_counter, 0u, 0xffu);
    dst_p[3] |= pack_left_shift_u8(src_p->obj_interface_version, 4u, 0xf0u);
    dst_p[3] |= pack_left_shift_u8(src_p->obj_bsd_warning, 2u, 0x0cu);
    dst_p[3] |= pack_left_shift_u8(src_p->obj_lca_warning, 0u, 0x03u);
    dst_p[4] |= pack_left_shift_u8(src_p->obj_dow_warning, 6u, 0xc0u);
    dst_p[4] |= pack_left_shift_u8(src_p->obj_rcta_warning, 4u, 0x30u);
    dst_p[4] |= pack_left_shift_u8(src_p->obj_rctb_warning, 2u, 0x0cu);
    dst_p[4] |= pack_left_shift_u8(src_p->obj_fcta_warning, 0u, 0x03u);
    dst_p[5] |= pack_left_shift_u8(src_p->obj_fctb_warning, 6u, 0xc0u);
    dst_p[6] |= pack_left_shift_u8(src_p->obj_cipvid, 0u, 0xffu);

    return (8);
}

int sr439_obj_0_status_fl_unpack(
    struct sr439_obj_0_status_fl_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->obj_nof_object = unpack_right_shift_u8(src_p[0], 0u, 0xffu);
    dst_p->obj_meas_counter = unpack_left_shift_u16(src_p[1], 8u, 0xffu);
    dst_p->obj_meas_counter |= unpack_right_shift_u16(src_p[2], 0u, 0xffu);
    dst_p->obj_interface_version = unpack_right_shift_u8(src_p[3], 4u, 0xf0u);
    dst_p->obj_bsd_warning = unpack_right_shift_u8(src_p[3], 2u, 0x0cu);
    dst_p->obj_lca_warning = unpack_right_shift_u8(src_p[3], 0u, 0x03u);
    dst_p->obj_dow_warning = unpack_right_shift_u8(src_p[4], 6u, 0xc0u);
    dst_p->obj_rcta_warning = unpack_right_shift_u8(src_p[4], 4u, 0x30u);
    dst_p->obj_rctb_warning = unpack_right_shift_u8(src_p[4], 2u, 0x0cu);
    dst_p->obj_fcta_warning = unpack_right_shift_u8(src_p[4], 0u, 0x03u);
    dst_p->obj_fctb_warning = unpack_right_shift_u8(src_p[5], 6u, 0xc0u);
    dst_p->obj_cipvid = unpack_right_shift_u8(src_p[6], 0u, 0xffu);

    return (0);
}

int sr439_obj_0_status_fl_init(struct sr439_obj_0_status_fl_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct sr439_obj_0_status_fl_t));

    return 0;
}

uint8_t sr439_obj_0_status_fl_obj_nof_object_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_0_status_fl_obj_nof_object_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_0_status_fl_obj_nof_object_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint16_t sr439_obj_0_status_fl_obj_meas_counter_encode(double value)
{
    return (uint16_t)(value);
}

double sr439_obj_0_status_fl_obj_meas_counter_decode(uint16_t value)
{
    return ((double)value);
}

bool sr439_obj_0_status_fl_obj_meas_counter_is_in_range(uint16_t value)
{
    (void)value;

    return (true);
}

uint8_t sr439_obj_0_status_fl_obj_interface_version_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_0_status_fl_obj_interface_version_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_0_status_fl_obj_interface_version_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint8_t sr439_obj_0_status_fl_obj_bsd_warning_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_0_status_fl_obj_bsd_warning_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_0_status_fl_obj_bsd_warning_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t sr439_obj_0_status_fl_obj_lca_warning_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_0_status_fl_obj_lca_warning_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_0_status_fl_obj_lca_warning_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t sr439_obj_0_status_fl_obj_dow_warning_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_0_status_fl_obj_dow_warning_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_0_status_fl_obj_dow_warning_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t sr439_obj_0_status_fl_obj_rcta_warning_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_0_status_fl_obj_rcta_warning_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_0_status_fl_obj_rcta_warning_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t sr439_obj_0_status_fl_obj_rctb_warning_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_0_status_fl_obj_rctb_warning_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_0_status_fl_obj_rctb_warning_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t sr439_obj_0_status_fl_obj_fcta_warning_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_0_status_fl_obj_fcta_warning_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_0_status_fl_obj_fcta_warning_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t sr439_obj_0_status_fl_obj_fctb_warning_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_0_status_fl_obj_fctb_warning_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_0_status_fl_obj_fctb_warning_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t sr439_obj_0_status_fl_obj_cipvid_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_0_status_fl_obj_cipvid_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_0_status_fl_obj_cipvid_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

int sr439_cluster_header_rr_pack(
    uint8_t *dst_p,
    const struct sr439_cluster_header_rr_t *src_p,
    size_t size)
{
    if (size < 24u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 24);

    dst_p[0] |= pack_left_shift_u8(src_p->cluster_frame_type, 6u, 0xc0u);
    dst_p[0] |= pack_right_shift_u32(src_p->cluster_frame_num, 18u, 0x3fu);
    dst_p[1] |= pack_right_shift_u32(src_p->cluster_frame_num, 10u, 0xffu);
    dst_p[2] |= pack_right_shift_u32(src_p->cluster_frame_num, 2u, 0xffu);
    dst_p[3] |= pack_left_shift_u32(src_p->cluster_frame_num, 6u, 0xc0u);
    dst_p[3] |= pack_right_shift_u8(src_p->cluster_target_number, 2u, 0x3fu);
    dst_p[4] |= pack_left_shift_u8(src_p->cluster_target_number, 6u, 0xc0u);
    dst_p[4] |= pack_right_shift_u32(src_p->cluster_timestamp, 24u, 0x3fu);
    dst_p[5] |= pack_right_shift_u32(src_p->cluster_timestamp, 16u, 0xffu);
    dst_p[6] |= pack_right_shift_u32(src_p->cluster_timestamp, 8u, 0xffu);
    dst_p[7] |= pack_left_shift_u32(src_p->cluster_timestamp, 0u, 0xffu);
    dst_p[8] |= pack_left_shift_u8(src_p->cluster_radar_identify, 0u, 0xffu);
    dst_p[9] |= pack_right_shift_u16(src_p->cluster_vehicle_speed, 8u, 0xffu);
    dst_p[10] |= pack_left_shift_u16(src_p->cluster_vehicle_speed, 0u, 0xffu);
    dst_p[11] |= pack_right_shift_u16(src_p->cluster_yaw_rate, 8u, 0xffu);
    dst_p[12] |= pack_left_shift_u16(src_p->cluster_yaw_rate, 0u, 0xffu);
    dst_p[13] |= pack_left_shift_u8(src_p->cluster_gear_st, 0u, 0xffu);

    return (24);
}

int sr439_cluster_header_rr_unpack(
    struct sr439_cluster_header_rr_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 24u) {
        return (-EINVAL);
    }

    dst_p->cluster_frame_type = unpack_right_shift_u8(src_p[0], 6u, 0xc0u);
    dst_p->cluster_frame_num = unpack_left_shift_u32(src_p[0], 18u, 0x3fu);
    dst_p->cluster_frame_num |= unpack_left_shift_u32(src_p[1], 10u, 0xffu);
    dst_p->cluster_frame_num |= unpack_left_shift_u32(src_p[2], 2u, 0xffu);
    dst_p->cluster_frame_num |= unpack_right_shift_u32(src_p[3], 6u, 0xc0u);
    dst_p->cluster_target_number = unpack_left_shift_u8(src_p[3], 2u, 0x3fu);
    dst_p->cluster_target_number |= unpack_right_shift_u8(src_p[4], 6u, 0xc0u);
    dst_p->cluster_timestamp = unpack_left_shift_u32(src_p[4], 24u, 0x3fu);
    dst_p->cluster_timestamp |= unpack_left_shift_u32(src_p[5], 16u, 0xffu);
    dst_p->cluster_timestamp |= unpack_left_shift_u32(src_p[6], 8u, 0xffu);
    dst_p->cluster_timestamp |= unpack_right_shift_u32(src_p[7], 0u, 0xffu);
    dst_p->cluster_radar_identify = unpack_right_shift_u8(src_p[8], 0u, 0xffu);
    dst_p->cluster_vehicle_speed = unpack_left_shift_u16(src_p[9], 8u, 0xffu);
    dst_p->cluster_vehicle_speed |= unpack_right_shift_u16(src_p[10], 0u, 0xffu);
    dst_p->cluster_yaw_rate = unpack_left_shift_u16(src_p[11], 8u, 0xffu);
    dst_p->cluster_yaw_rate |= unpack_right_shift_u16(src_p[12], 0u, 0xffu);
    dst_p->cluster_gear_st = unpack_right_shift_u8(src_p[13], 0u, 0xffu);

    return (0);
}

int sr439_cluster_header_rr_init(struct sr439_cluster_header_rr_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct sr439_cluster_header_rr_t));

    return 0;
}

uint8_t sr439_cluster_header_rr_cluster_frame_type_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_cluster_header_rr_cluster_frame_type_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_cluster_header_rr_cluster_frame_type_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint32_t sr439_cluster_header_rr_cluster_frame_num_encode(double value)
{
    return (uint32_t)(value);
}

double sr439_cluster_header_rr_cluster_frame_num_decode(uint32_t value)
{
    return ((double)value);
}

bool sr439_cluster_header_rr_cluster_frame_num_is_in_range(uint32_t value)
{
    return (value <= 16777215u);
}

uint8_t sr439_cluster_header_rr_cluster_target_number_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_cluster_header_rr_cluster_target_number_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_cluster_header_rr_cluster_target_number_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint32_t sr439_cluster_header_rr_cluster_timestamp_encode(double value)
{
    return (uint32_t)(value);
}

double sr439_cluster_header_rr_cluster_timestamp_decode(uint32_t value)
{
    return ((double)value);
}

bool sr439_cluster_header_rr_cluster_timestamp_is_in_range(uint32_t value)
{
    return (value <= 1073741823u);
}

uint8_t sr439_cluster_header_rr_cluster_radar_identify_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_cluster_header_rr_cluster_radar_identify_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_cluster_header_rr_cluster_radar_identify_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint16_t sr439_cluster_header_rr_cluster_vehicle_speed_encode(double value)
{
    return (uint16_t)((value - -327.68) / 0.01);
}

double sr439_cluster_header_rr_cluster_vehicle_speed_decode(uint16_t value)
{
    return (((double)value * 0.01) + -327.68);
}

bool sr439_cluster_header_rr_cluster_vehicle_speed_is_in_range(uint16_t value)
{
    (void)value;

    return (true);
}

uint16_t sr439_cluster_header_rr_cluster_yaw_rate_encode(double value)
{
    return (uint16_t)((value - -327.68) / 0.01);
}

double sr439_cluster_header_rr_cluster_yaw_rate_decode(uint16_t value)
{
    return (((double)value * 0.01) + -327.68);
}

bool sr439_cluster_header_rr_cluster_yaw_rate_is_in_range(uint16_t value)
{
    (void)value;

    return (true);
}

uint8_t sr439_cluster_header_rr_cluster_gear_st_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_cluster_header_rr_cluster_gear_st_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_cluster_header_rr_cluster_gear_st_is_in_range(uint8_t value)
{
    return (value <= 16u);
}

int sr439_cluster_header_fr_pack(
    uint8_t *dst_p,
    const struct sr439_cluster_header_fr_t *src_p,
    size_t size)
{
    if (size < 24u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 24);

    dst_p[0] |= pack_left_shift_u8(src_p->cluster_frame_type, 6u, 0xc0u);
    dst_p[0] |= pack_right_shift_u32(src_p->cluster_frame_num, 18u, 0x3fu);
    dst_p[1] |= pack_right_shift_u32(src_p->cluster_frame_num, 10u, 0xffu);
    dst_p[2] |= pack_right_shift_u32(src_p->cluster_frame_num, 2u, 0xffu);
    dst_p[3] |= pack_left_shift_u32(src_p->cluster_frame_num, 6u, 0xc0u);
    dst_p[3] |= pack_right_shift_u8(src_p->cluster_target_number, 2u, 0x3fu);
    dst_p[4] |= pack_left_shift_u8(src_p->cluster_target_number, 6u, 0xc0u);
    dst_p[4] |= pack_right_shift_u32(src_p->cluster_timestamp, 24u, 0x3fu);
    dst_p[5] |= pack_right_shift_u32(src_p->cluster_timestamp, 16u, 0xffu);
    dst_p[6] |= pack_right_shift_u32(src_p->cluster_timestamp, 8u, 0xffu);
    dst_p[7] |= pack_left_shift_u32(src_p->cluster_timestamp, 0u, 0xffu);
    dst_p[8] |= pack_left_shift_u8(src_p->cluster_radar_identify, 0u, 0xffu);
    dst_p[9] |= pack_right_shift_u16(src_p->cluster_vehicle_speed, 8u, 0xffu);
    dst_p[10] |= pack_left_shift_u16(src_p->cluster_vehicle_speed, 0u, 0xffu);
    dst_p[11] |= pack_right_shift_u16(src_p->cluster_yaw_rate, 8u, 0xffu);
    dst_p[12] |= pack_left_shift_u16(src_p->cluster_yaw_rate, 0u, 0xffu);
    dst_p[13] |= pack_left_shift_u8(src_p->cluster_gear_st, 0u, 0xffu);

    return (24);
}

int sr439_cluster_header_fr_unpack(
    struct sr439_cluster_header_fr_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 24u) {
        return (-EINVAL);
    }

    dst_p->cluster_frame_type = unpack_right_shift_u8(src_p[0], 6u, 0xc0u);
    dst_p->cluster_frame_num = unpack_left_shift_u32(src_p[0], 18u, 0x3fu);
    dst_p->cluster_frame_num |= unpack_left_shift_u32(src_p[1], 10u, 0xffu);
    dst_p->cluster_frame_num |= unpack_left_shift_u32(src_p[2], 2u, 0xffu);
    dst_p->cluster_frame_num |= unpack_right_shift_u32(src_p[3], 6u, 0xc0u);
    dst_p->cluster_target_number = unpack_left_shift_u8(src_p[3], 2u, 0x3fu);
    dst_p->cluster_target_number |= unpack_right_shift_u8(src_p[4], 6u, 0xc0u);
    dst_p->cluster_timestamp = unpack_left_shift_u32(src_p[4], 24u, 0x3fu);
    dst_p->cluster_timestamp |= unpack_left_shift_u32(src_p[5], 16u, 0xffu);
    dst_p->cluster_timestamp |= unpack_left_shift_u32(src_p[6], 8u, 0xffu);
    dst_p->cluster_timestamp |= unpack_right_shift_u32(src_p[7], 0u, 0xffu);
    dst_p->cluster_radar_identify = unpack_right_shift_u8(src_p[8], 0u, 0xffu);
    dst_p->cluster_vehicle_speed = unpack_left_shift_u16(src_p[9], 8u, 0xffu);
    dst_p->cluster_vehicle_speed |= unpack_right_shift_u16(src_p[10], 0u, 0xffu);
    dst_p->cluster_yaw_rate = unpack_left_shift_u16(src_p[11], 8u, 0xffu);
    dst_p->cluster_yaw_rate |= unpack_right_shift_u16(src_p[12], 0u, 0xffu);
    dst_p->cluster_gear_st = unpack_right_shift_u8(src_p[13], 0u, 0xffu);

    return (0);
}

int sr439_cluster_header_fr_init(struct sr439_cluster_header_fr_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct sr439_cluster_header_fr_t));

    return 0;
}

uint8_t sr439_cluster_header_fr_cluster_frame_type_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_cluster_header_fr_cluster_frame_type_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_cluster_header_fr_cluster_frame_type_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint32_t sr439_cluster_header_fr_cluster_frame_num_encode(double value)
{
    return (uint32_t)(value);
}

double sr439_cluster_header_fr_cluster_frame_num_decode(uint32_t value)
{
    return ((double)value);
}

bool sr439_cluster_header_fr_cluster_frame_num_is_in_range(uint32_t value)
{
    return (value <= 16777215u);
}

uint8_t sr439_cluster_header_fr_cluster_target_number_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_cluster_header_fr_cluster_target_number_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_cluster_header_fr_cluster_target_number_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint32_t sr439_cluster_header_fr_cluster_timestamp_encode(double value)
{
    return (uint32_t)(value);
}

double sr439_cluster_header_fr_cluster_timestamp_decode(uint32_t value)
{
    return ((double)value);
}

bool sr439_cluster_header_fr_cluster_timestamp_is_in_range(uint32_t value)
{
    return (value <= 1073741823u);
}

uint8_t sr439_cluster_header_fr_cluster_radar_identify_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_cluster_header_fr_cluster_radar_identify_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_cluster_header_fr_cluster_radar_identify_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint16_t sr439_cluster_header_fr_cluster_vehicle_speed_encode(double value)
{
    return (uint16_t)((value - -327.68) / 0.01);
}

double sr439_cluster_header_fr_cluster_vehicle_speed_decode(uint16_t value)
{
    return (((double)value * 0.01) + -327.68);
}

bool sr439_cluster_header_fr_cluster_vehicle_speed_is_in_range(uint16_t value)
{
    (void)value;

    return (true);
}

uint16_t sr439_cluster_header_fr_cluster_yaw_rate_encode(double value)
{
    return (uint16_t)((value - -327.68) / 0.01);
}

double sr439_cluster_header_fr_cluster_yaw_rate_decode(uint16_t value)
{
    return (((double)value * 0.01) + -327.68);
}

bool sr439_cluster_header_fr_cluster_yaw_rate_is_in_range(uint16_t value)
{
    (void)value;

    return (true);
}

uint8_t sr439_cluster_header_fr_cluster_gear_st_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_cluster_header_fr_cluster_gear_st_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_cluster_header_fr_cluster_gear_st_is_in_range(uint8_t value)
{
    return (value <= 16u);
}

int sr439_cluster_header_fl_pack(
    uint8_t *dst_p,
    const struct sr439_cluster_header_fl_t *src_p,
    size_t size)
{
    if (size < 24u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 24);

    dst_p[0] |= pack_left_shift_u8(src_p->cluster_frame_type, 6u, 0xc0u);
    dst_p[0] |= pack_right_shift_u32(src_p->cluster_frame_num, 18u, 0x3fu);
    dst_p[1] |= pack_right_shift_u32(src_p->cluster_frame_num, 10u, 0xffu);
    dst_p[2] |= pack_right_shift_u32(src_p->cluster_frame_num, 2u, 0xffu);
    dst_p[3] |= pack_left_shift_u32(src_p->cluster_frame_num, 6u, 0xc0u);
    dst_p[3] |= pack_right_shift_u8(src_p->cluster_target_number, 2u, 0x3fu);
    dst_p[4] |= pack_left_shift_u8(src_p->cluster_target_number, 6u, 0xc0u);
    dst_p[4] |= pack_right_shift_u32(src_p->cluster_timestamp, 24u, 0x3fu);
    dst_p[5] |= pack_right_shift_u32(src_p->cluster_timestamp, 16u, 0xffu);
    dst_p[6] |= pack_right_shift_u32(src_p->cluster_timestamp, 8u, 0xffu);
    dst_p[7] |= pack_left_shift_u32(src_p->cluster_timestamp, 0u, 0xffu);
    dst_p[8] |= pack_left_shift_u8(src_p->cluster_radar_identify, 0u, 0xffu);
    dst_p[9] |= pack_right_shift_u16(src_p->cluster_vehicle_speed, 8u, 0xffu);
    dst_p[10] |= pack_left_shift_u16(src_p->cluster_vehicle_speed, 0u, 0xffu);
    dst_p[11] |= pack_right_shift_u16(src_p->cluster_yaw_rate, 8u, 0xffu);
    dst_p[12] |= pack_left_shift_u16(src_p->cluster_yaw_rate, 0u, 0xffu);
    dst_p[13] |= pack_left_shift_u8(src_p->cluster_gear_st, 0u, 0xffu);

    return (24);
}

int sr439_cluster_header_fl_unpack(
    struct sr439_cluster_header_fl_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 24u) {
        return (-EINVAL);
    }

    dst_p->cluster_frame_type = unpack_right_shift_u8(src_p[0], 6u, 0xc0u);
    dst_p->cluster_frame_num = unpack_left_shift_u32(src_p[0], 18u, 0x3fu);
    dst_p->cluster_frame_num |= unpack_left_shift_u32(src_p[1], 10u, 0xffu);
    dst_p->cluster_frame_num |= unpack_left_shift_u32(src_p[2], 2u, 0xffu);
    dst_p->cluster_frame_num |= unpack_right_shift_u32(src_p[3], 6u, 0xc0u);
    dst_p->cluster_target_number = unpack_left_shift_u8(src_p[3], 2u, 0x3fu);
    dst_p->cluster_target_number |= unpack_right_shift_u8(src_p[4], 6u, 0xc0u);
    dst_p->cluster_timestamp = unpack_left_shift_u32(src_p[4], 24u, 0x3fu);
    dst_p->cluster_timestamp |= unpack_left_shift_u32(src_p[5], 16u, 0xffu);
    dst_p->cluster_timestamp |= unpack_left_shift_u32(src_p[6], 8u, 0xffu);
    dst_p->cluster_timestamp |= unpack_right_shift_u32(src_p[7], 0u, 0xffu);
    dst_p->cluster_radar_identify = unpack_right_shift_u8(src_p[8], 0u, 0xffu);
    dst_p->cluster_vehicle_speed = unpack_left_shift_u16(src_p[9], 8u, 0xffu);
    dst_p->cluster_vehicle_speed |= unpack_right_shift_u16(src_p[10], 0u, 0xffu);
    dst_p->cluster_yaw_rate = unpack_left_shift_u16(src_p[11], 8u, 0xffu);
    dst_p->cluster_yaw_rate |= unpack_right_shift_u16(src_p[12], 0u, 0xffu);
    dst_p->cluster_gear_st = unpack_right_shift_u8(src_p[13], 0u, 0xffu);

    return (0);
}

int sr439_cluster_header_fl_init(struct sr439_cluster_header_fl_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct sr439_cluster_header_fl_t));

    return 0;
}

uint8_t sr439_cluster_header_fl_cluster_frame_type_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_cluster_header_fl_cluster_frame_type_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_cluster_header_fl_cluster_frame_type_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint32_t sr439_cluster_header_fl_cluster_frame_num_encode(double value)
{
    return (uint32_t)(value);
}

double sr439_cluster_header_fl_cluster_frame_num_decode(uint32_t value)
{
    return ((double)value);
}

bool sr439_cluster_header_fl_cluster_frame_num_is_in_range(uint32_t value)
{
    return (value <= 16777215u);
}

uint8_t sr439_cluster_header_fl_cluster_target_number_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_cluster_header_fl_cluster_target_number_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_cluster_header_fl_cluster_target_number_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint32_t sr439_cluster_header_fl_cluster_timestamp_encode(double value)
{
    return (uint32_t)(value);
}

double sr439_cluster_header_fl_cluster_timestamp_decode(uint32_t value)
{
    return ((double)value);
}

bool sr439_cluster_header_fl_cluster_timestamp_is_in_range(uint32_t value)
{
    return (value <= 1073741823u);
}

uint8_t sr439_cluster_header_fl_cluster_radar_identify_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_cluster_header_fl_cluster_radar_identify_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_cluster_header_fl_cluster_radar_identify_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint16_t sr439_cluster_header_fl_cluster_vehicle_speed_encode(double value)
{
    return (uint16_t)((value - -327.68) / 0.01);
}

double sr439_cluster_header_fl_cluster_vehicle_speed_decode(uint16_t value)
{
    return (((double)value * 0.01) + -327.68);
}

bool sr439_cluster_header_fl_cluster_vehicle_speed_is_in_range(uint16_t value)
{
    (void)value;

    return (true);
}

uint16_t sr439_cluster_header_fl_cluster_yaw_rate_encode(double value)
{
    return (uint16_t)((value - -327.68) / 0.01);
}

double sr439_cluster_header_fl_cluster_yaw_rate_decode(uint16_t value)
{
    return (((double)value * 0.01) + -327.68);
}

bool sr439_cluster_header_fl_cluster_yaw_rate_is_in_range(uint16_t value)
{
    (void)value;

    return (true);
}

uint8_t sr439_cluster_header_fl_cluster_gear_st_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_cluster_header_fl_cluster_gear_st_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_cluster_header_fl_cluster_gear_st_is_in_range(uint8_t value)
{
    return (value <= 16u);
}

int sr439_cluster_general_information_rr_pack(
    uint8_t *dst_p,
    const struct sr439_cluster_general_information_rr_t *src_p,
    size_t size)
{
    if (size < 64u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 64);

    dst_p[0] |= pack_left_shift_u8(src_p->cluster_id_1, 0u, 0xffu);
    dst_p[1] |= pack_right_shift_u16(src_p->cluster_range_1, 6u, 0xffu);
    dst_p[2] |= pack_left_shift_u16(src_p->cluster_range_1, 2u, 0xfcu);
    dst_p[2] |= pack_right_shift_u16(src_p->cluster_velocity_1, 11u, 0x03u);
    dst_p[3] |= pack_right_shift_u16(src_p->cluster_velocity_1, 3u, 0xffu);
    dst_p[4] |= pack_left_shift_u16(src_p->cluster_velocity_1, 5u, 0xe0u);
    dst_p[4] |= pack_right_shift_u16(src_p->cluster_azimuth_1, 7u, 0x1fu);
    dst_p[5] |= pack_left_shift_u16(src_p->cluster_azimuth_1, 1u, 0xfeu);
    dst_p[5] |= pack_right_shift_u16(src_p->cluster_elevation_1, 9u, 0x01u);
    dst_p[6] |= pack_right_shift_u16(src_p->cluster_elevation_1, 1u, 0xffu);
    dst_p[7] |= pack_left_shift_u16(src_p->cluster_elevation_1, 7u, 0x80u);
    dst_p[7] |= pack_left_shift_u8(src_p->cluster_dyn_prop_1, 5u, 0x60u);
    dst_p[7] |= pack_left_shift_u8(src_p->cluster_prob_of_exist_1, 2u, 0x1cu);
    dst_p[7] |= pack_right_shift_u8(src_p->cluster_rcs_1, 6u, 0x03u);
    dst_p[8] |= pack_left_shift_u8(src_p->cluster_rcs_1, 2u, 0xfcu);
    dst_p[8] |= pack_right_shift_u16(src_p->cluster_power_1, 7u, 0x03u);
    dst_p[9] |= pack_left_shift_u16(src_p->cluster_power_1, 1u, 0xfeu);
    dst_p[9] |= pack_right_shift_u16(src_p->cluster_snr_1, 8u, 0x01u);
    dst_p[10] |= pack_left_shift_u16(src_p->cluster_snr_1, 0u, 0xffu);
    dst_p[12] |= pack_left_shift_u8(src_p->cluster_id_2, 0u, 0xffu);
    dst_p[13] |= pack_right_shift_u16(src_p->cluster_range_2, 6u, 0xffu);
    dst_p[14] |= pack_left_shift_u16(src_p->cluster_range_2, 2u, 0xfcu);
    dst_p[14] |= pack_right_shift_u16(src_p->cluster_velocity_2, 11u, 0x03u);
    dst_p[15] |= pack_right_shift_u16(src_p->cluster_velocity_2, 3u, 0xffu);
    dst_p[16] |= pack_left_shift_u16(src_p->cluster_velocity_2, 5u, 0xe0u);
    dst_p[16] |= pack_right_shift_u16(src_p->cluster_azimuth_2, 7u, 0x1fu);
    dst_p[17] |= pack_left_shift_u16(src_p->cluster_azimuth_2, 1u, 0xfeu);
    dst_p[17] |= pack_right_shift_u16(src_p->cluster_elevation_2, 9u, 0x01u);
    dst_p[18] |= pack_right_shift_u16(src_p->cluster_elevation_2, 1u, 0xffu);
    dst_p[19] |= pack_left_shift_u16(src_p->cluster_elevation_2, 7u, 0x80u);
    dst_p[19] |= pack_left_shift_u8(src_p->cluster_dyn_prop_2, 5u, 0x60u);
    dst_p[19] |= pack_left_shift_u8(src_p->cluster_prob_of_exist_2, 2u, 0x1cu);
    dst_p[19] |= pack_right_shift_u8(src_p->cluster_rcs_2, 6u, 0x03u);
    dst_p[20] |= pack_left_shift_u8(src_p->cluster_rcs_2, 2u, 0xfcu);
    dst_p[20] |= pack_right_shift_u16(src_p->cluster_power_2, 7u, 0x03u);
    dst_p[21] |= pack_left_shift_u16(src_p->cluster_power_2, 1u, 0xfeu);
    dst_p[21] |= pack_right_shift_u16(src_p->cluster_snr_2, 8u, 0x01u);
    dst_p[22] |= pack_left_shift_u16(src_p->cluster_snr_2, 0u, 0xffu);
    dst_p[24] |= pack_left_shift_u8(src_p->cluster_id_3, 0u, 0xffu);
    dst_p[25] |= pack_right_shift_u16(src_p->cluster_range_3, 6u, 0xffu);
    dst_p[26] |= pack_left_shift_u16(src_p->cluster_range_3, 2u, 0xfcu);
    dst_p[26] |= pack_right_shift_u16(src_p->cluster_velocity_3, 11u, 0x03u);
    dst_p[27] |= pack_right_shift_u16(src_p->cluster_velocity_3, 3u, 0xffu);
    dst_p[28] |= pack_left_shift_u16(src_p->cluster_velocity_3, 5u, 0xe0u);
    dst_p[28] |= pack_right_shift_u16(src_p->cluster_azimuth_3, 7u, 0x1fu);
    dst_p[29] |= pack_left_shift_u16(src_p->cluster_azimuth_3, 1u, 0xfeu);
    dst_p[29] |= pack_right_shift_u16(src_p->cluster_elevation_3, 9u, 0x01u);
    dst_p[30] |= pack_right_shift_u16(src_p->cluster_elevation_3, 1u, 0xffu);
    dst_p[31] |= pack_left_shift_u16(src_p->cluster_elevation_3, 7u, 0x80u);
    dst_p[31] |= pack_left_shift_u8(src_p->cluster_dyn_prop_3, 5u, 0x60u);
    dst_p[31] |= pack_left_shift_u8(src_p->cluster_prob_of_exist_3, 2u, 0x1cu);
    dst_p[31] |= pack_right_shift_u8(src_p->cluster_rcs_3, 6u, 0x03u);
    dst_p[32] |= pack_left_shift_u8(src_p->cluster_rcs_3, 2u, 0xfcu);
    dst_p[32] |= pack_right_shift_u16(src_p->cluster_power_3, 7u, 0x03u);
    dst_p[33] |= pack_left_shift_u16(src_p->cluster_power_3, 1u, 0xfeu);
    dst_p[33] |= pack_right_shift_u16(src_p->cluster_snr_3, 8u, 0x01u);
    dst_p[34] |= pack_left_shift_u16(src_p->cluster_snr_3, 0u, 0xffu);
    dst_p[36] |= pack_left_shift_u8(src_p->cluster_id_4, 0u, 0xffu);
    dst_p[37] |= pack_right_shift_u16(src_p->cluster_range_4, 6u, 0xffu);
    dst_p[38] |= pack_left_shift_u16(src_p->cluster_range_4, 2u, 0xfcu);
    dst_p[38] |= pack_right_shift_u16(src_p->cluster_velocity_4, 11u, 0x03u);
    dst_p[39] |= pack_right_shift_u16(src_p->cluster_velocity_4, 3u, 0xffu);
    dst_p[40] |= pack_left_shift_u16(src_p->cluster_velocity_4, 5u, 0xe0u);
    dst_p[40] |= pack_right_shift_u16(src_p->cluster_azimuth_4, 7u, 0x1fu);
    dst_p[41] |= pack_left_shift_u16(src_p->cluster_azimuth_4, 1u, 0xfeu);
    dst_p[41] |= pack_right_shift_u16(src_p->cluster_elevation_4, 9u, 0x01u);
    dst_p[42] |= pack_right_shift_u16(src_p->cluster_elevation_4, 1u, 0xffu);
    dst_p[43] |= pack_left_shift_u16(src_p->cluster_elevation_4, 7u, 0x80u);
    dst_p[43] |= pack_left_shift_u8(src_p->cluster_dyn_prop_4, 5u, 0x60u);
    dst_p[43] |= pack_left_shift_u8(src_p->cluster_prob_of_exist_4, 2u, 0x1cu);
    dst_p[43] |= pack_right_shift_u8(src_p->cluster_rcs_4, 6u, 0x03u);
    dst_p[44] |= pack_left_shift_u8(src_p->cluster_rcs_4, 2u, 0xfcu);
    dst_p[44] |= pack_right_shift_u16(src_p->cluster_power_4, 7u, 0x03u);
    dst_p[45] |= pack_left_shift_u16(src_p->cluster_power_4, 1u, 0xfeu);
    dst_p[45] |= pack_right_shift_u16(src_p->cluster_snr_4, 8u, 0x01u);
    dst_p[46] |= pack_left_shift_u16(src_p->cluster_snr_4, 0u, 0xffu);
    dst_p[48] |= pack_left_shift_u8(src_p->cluster_id_5, 0u, 0xffu);
    dst_p[49] |= pack_right_shift_u16(src_p->cluster_range_5, 6u, 0xffu);
    dst_p[50] |= pack_left_shift_u16(src_p->cluster_range_5, 2u, 0xfcu);
    dst_p[50] |= pack_right_shift_u16(src_p->cluster_velocity_5, 11u, 0x03u);
    dst_p[51] |= pack_right_shift_u16(src_p->cluster_velocity_5, 3u, 0xffu);
    dst_p[52] |= pack_left_shift_u16(src_p->cluster_velocity_5, 5u, 0xe0u);
    dst_p[52] |= pack_right_shift_u16(src_p->cluster_azimuth_5, 7u, 0x1fu);
    dst_p[53] |= pack_left_shift_u16(src_p->cluster_azimuth_5, 1u, 0xfeu);
    dst_p[53] |= pack_right_shift_u16(src_p->cluster_elevation_5, 9u, 0x01u);
    dst_p[54] |= pack_right_shift_u16(src_p->cluster_elevation_5, 1u, 0xffu);
    dst_p[55] |= pack_left_shift_u16(src_p->cluster_elevation_5, 7u, 0x80u);
    dst_p[55] |= pack_left_shift_u8(src_p->cluster_dyn_prop_5, 5u, 0x60u);
    dst_p[55] |= pack_left_shift_u8(src_p->cluster_prob_of_exist_5, 2u, 0x1cu);
    dst_p[55] |= pack_right_shift_u8(src_p->cluster_rcs_5, 6u, 0x03u);
    dst_p[56] |= pack_left_shift_u8(src_p->cluster_rcs_5, 2u, 0xfcu);
    dst_p[56] |= pack_right_shift_u16(src_p->cluster_power_5, 7u, 0x03u);
    dst_p[57] |= pack_left_shift_u16(src_p->cluster_power_5, 1u, 0xfeu);
    dst_p[57] |= pack_right_shift_u16(src_p->cluster_snr_5, 8u, 0x01u);
    dst_p[58] |= pack_left_shift_u16(src_p->cluster_snr_5, 0u, 0xffu);

    return (64);
}

int sr439_cluster_general_information_rr_unpack(
    struct sr439_cluster_general_information_rr_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 64u) {
        return (-EINVAL);
    }

    dst_p->cluster_id_1 = unpack_right_shift_u8(src_p[0], 0u, 0xffu);
    dst_p->cluster_range_1 = unpack_left_shift_u16(src_p[1], 6u, 0xffu);
    dst_p->cluster_range_1 |= unpack_right_shift_u16(src_p[2], 2u, 0xfcu);
    dst_p->cluster_velocity_1 = unpack_left_shift_u16(src_p[2], 11u, 0x03u);
    dst_p->cluster_velocity_1 |= unpack_left_shift_u16(src_p[3], 3u, 0xffu);
    dst_p->cluster_velocity_1 |= unpack_right_shift_u16(src_p[4], 5u, 0xe0u);
    dst_p->cluster_azimuth_1 = unpack_left_shift_u16(src_p[4], 7u, 0x1fu);
    dst_p->cluster_azimuth_1 |= unpack_right_shift_u16(src_p[5], 1u, 0xfeu);
    dst_p->cluster_elevation_1 = unpack_left_shift_u16(src_p[5], 9u, 0x01u);
    dst_p->cluster_elevation_1 |= unpack_left_shift_u16(src_p[6], 1u, 0xffu);
    dst_p->cluster_elevation_1 |= unpack_right_shift_u16(src_p[7], 7u, 0x80u);
    dst_p->cluster_dyn_prop_1 = unpack_right_shift_u8(src_p[7], 5u, 0x60u);
    dst_p->cluster_prob_of_exist_1 = unpack_right_shift_u8(src_p[7], 2u, 0x1cu);
    dst_p->cluster_rcs_1 = unpack_left_shift_u8(src_p[7], 6u, 0x03u);
    dst_p->cluster_rcs_1 |= unpack_right_shift_u8(src_p[8], 2u, 0xfcu);
    dst_p->cluster_power_1 = unpack_left_shift_u16(src_p[8], 7u, 0x03u);
    dst_p->cluster_power_1 |= unpack_right_shift_u16(src_p[9], 1u, 0xfeu);
    dst_p->cluster_snr_1 = unpack_left_shift_u16(src_p[9], 8u, 0x01u);
    dst_p->cluster_snr_1 |= unpack_right_shift_u16(src_p[10], 0u, 0xffu);
    dst_p->cluster_id_2 = unpack_right_shift_u8(src_p[12], 0u, 0xffu);
    dst_p->cluster_range_2 = unpack_left_shift_u16(src_p[13], 6u, 0xffu);
    dst_p->cluster_range_2 |= unpack_right_shift_u16(src_p[14], 2u, 0xfcu);
    dst_p->cluster_velocity_2 = unpack_left_shift_u16(src_p[14], 11u, 0x03u);
    dst_p->cluster_velocity_2 |= unpack_left_shift_u16(src_p[15], 3u, 0xffu);
    dst_p->cluster_velocity_2 |= unpack_right_shift_u16(src_p[16], 5u, 0xe0u);
    dst_p->cluster_azimuth_2 = unpack_left_shift_u16(src_p[16], 7u, 0x1fu);
    dst_p->cluster_azimuth_2 |= unpack_right_shift_u16(src_p[17], 1u, 0xfeu);
    dst_p->cluster_elevation_2 = unpack_left_shift_u16(src_p[17], 9u, 0x01u);
    dst_p->cluster_elevation_2 |= unpack_left_shift_u16(src_p[18], 1u, 0xffu);
    dst_p->cluster_elevation_2 |= unpack_right_shift_u16(src_p[19], 7u, 0x80u);
    dst_p->cluster_dyn_prop_2 = unpack_right_shift_u8(src_p[19], 5u, 0x60u);
    dst_p->cluster_prob_of_exist_2 = unpack_right_shift_u8(src_p[19], 2u, 0x1cu);
    dst_p->cluster_rcs_2 = unpack_left_shift_u8(src_p[19], 6u, 0x03u);
    dst_p->cluster_rcs_2 |= unpack_right_shift_u8(src_p[20], 2u, 0xfcu);
    dst_p->cluster_power_2 = unpack_left_shift_u16(src_p[20], 7u, 0x03u);
    dst_p->cluster_power_2 |= unpack_right_shift_u16(src_p[21], 1u, 0xfeu);
    dst_p->cluster_snr_2 = unpack_left_shift_u16(src_p[21], 8u, 0x01u);
    dst_p->cluster_snr_2 |= unpack_right_shift_u16(src_p[22], 0u, 0xffu);
    dst_p->cluster_id_3 = unpack_right_shift_u8(src_p[24], 0u, 0xffu);
    dst_p->cluster_range_3 = unpack_left_shift_u16(src_p[25], 6u, 0xffu);
    dst_p->cluster_range_3 |= unpack_right_shift_u16(src_p[26], 2u, 0xfcu);
    dst_p->cluster_velocity_3 = unpack_left_shift_u16(src_p[26], 11u, 0x03u);
    dst_p->cluster_velocity_3 |= unpack_left_shift_u16(src_p[27], 3u, 0xffu);
    dst_p->cluster_velocity_3 |= unpack_right_shift_u16(src_p[28], 5u, 0xe0u);
    dst_p->cluster_azimuth_3 = unpack_left_shift_u16(src_p[28], 7u, 0x1fu);
    dst_p->cluster_azimuth_3 |= unpack_right_shift_u16(src_p[29], 1u, 0xfeu);
    dst_p->cluster_elevation_3 = unpack_left_shift_u16(src_p[29], 9u, 0x01u);
    dst_p->cluster_elevation_3 |= unpack_left_shift_u16(src_p[30], 1u, 0xffu);
    dst_p->cluster_elevation_3 |= unpack_right_shift_u16(src_p[31], 7u, 0x80u);
    dst_p->cluster_dyn_prop_3 = unpack_right_shift_u8(src_p[31], 5u, 0x60u);
    dst_p->cluster_prob_of_exist_3 = unpack_right_shift_u8(src_p[31], 2u, 0x1cu);
    dst_p->cluster_rcs_3 = unpack_left_shift_u8(src_p[31], 6u, 0x03u);
    dst_p->cluster_rcs_3 |= unpack_right_shift_u8(src_p[32], 2u, 0xfcu);
    dst_p->cluster_power_3 = unpack_left_shift_u16(src_p[32], 7u, 0x03u);
    dst_p->cluster_power_3 |= unpack_right_shift_u16(src_p[33], 1u, 0xfeu);
    dst_p->cluster_snr_3 = unpack_left_shift_u16(src_p[33], 8u, 0x01u);
    dst_p->cluster_snr_3 |= unpack_right_shift_u16(src_p[34], 0u, 0xffu);
    dst_p->cluster_id_4 = unpack_right_shift_u8(src_p[36], 0u, 0xffu);
    dst_p->cluster_range_4 = unpack_left_shift_u16(src_p[37], 6u, 0xffu);
    dst_p->cluster_range_4 |= unpack_right_shift_u16(src_p[38], 2u, 0xfcu);
    dst_p->cluster_velocity_4 = unpack_left_shift_u16(src_p[38], 11u, 0x03u);
    dst_p->cluster_velocity_4 |= unpack_left_shift_u16(src_p[39], 3u, 0xffu);
    dst_p->cluster_velocity_4 |= unpack_right_shift_u16(src_p[40], 5u, 0xe0u);
    dst_p->cluster_azimuth_4 = unpack_left_shift_u16(src_p[40], 7u, 0x1fu);
    dst_p->cluster_azimuth_4 |= unpack_right_shift_u16(src_p[41], 1u, 0xfeu);
    dst_p->cluster_elevation_4 = unpack_left_shift_u16(src_p[41], 9u, 0x01u);
    dst_p->cluster_elevation_4 |= unpack_left_shift_u16(src_p[42], 1u, 0xffu);
    dst_p->cluster_elevation_4 |= unpack_right_shift_u16(src_p[43], 7u, 0x80u);
    dst_p->cluster_dyn_prop_4 = unpack_right_shift_u8(src_p[43], 5u, 0x60u);
    dst_p->cluster_prob_of_exist_4 = unpack_right_shift_u8(src_p[43], 2u, 0x1cu);
    dst_p->cluster_rcs_4 = unpack_left_shift_u8(src_p[43], 6u, 0x03u);
    dst_p->cluster_rcs_4 |= unpack_right_shift_u8(src_p[44], 2u, 0xfcu);
    dst_p->cluster_power_4 = unpack_left_shift_u16(src_p[44], 7u, 0x03u);
    dst_p->cluster_power_4 |= unpack_right_shift_u16(src_p[45], 1u, 0xfeu);
    dst_p->cluster_snr_4 = unpack_left_shift_u16(src_p[45], 8u, 0x01u);
    dst_p->cluster_snr_4 |= unpack_right_shift_u16(src_p[46], 0u, 0xffu);
    dst_p->cluster_id_5 = unpack_right_shift_u8(src_p[48], 0u, 0xffu);
    dst_p->cluster_range_5 = unpack_left_shift_u16(src_p[49], 6u, 0xffu);
    dst_p->cluster_range_5 |= unpack_right_shift_u16(src_p[50], 2u, 0xfcu);
    dst_p->cluster_velocity_5 = unpack_left_shift_u16(src_p[50], 11u, 0x03u);
    dst_p->cluster_velocity_5 |= unpack_left_shift_u16(src_p[51], 3u, 0xffu);
    dst_p->cluster_velocity_5 |= unpack_right_shift_u16(src_p[52], 5u, 0xe0u);
    dst_p->cluster_azimuth_5 = unpack_left_shift_u16(src_p[52], 7u, 0x1fu);
    dst_p->cluster_azimuth_5 |= unpack_right_shift_u16(src_p[53], 1u, 0xfeu);
    dst_p->cluster_elevation_5 = unpack_left_shift_u16(src_p[53], 9u, 0x01u);
    dst_p->cluster_elevation_5 |= unpack_left_shift_u16(src_p[54], 1u, 0xffu);
    dst_p->cluster_elevation_5 |= unpack_right_shift_u16(src_p[55], 7u, 0x80u);
    dst_p->cluster_dyn_prop_5 = unpack_right_shift_u8(src_p[55], 5u, 0x60u);
    dst_p->cluster_prob_of_exist_5 = unpack_right_shift_u8(src_p[55], 2u, 0x1cu);
    dst_p->cluster_rcs_5 = unpack_left_shift_u8(src_p[55], 6u, 0x03u);
    dst_p->cluster_rcs_5 |= unpack_right_shift_u8(src_p[56], 2u, 0xfcu);
    dst_p->cluster_power_5 = unpack_left_shift_u16(src_p[56], 7u, 0x03u);
    dst_p->cluster_power_5 |= unpack_right_shift_u16(src_p[57], 1u, 0xfeu);
    dst_p->cluster_snr_5 = unpack_left_shift_u16(src_p[57], 8u, 0x01u);
    dst_p->cluster_snr_5 |= unpack_right_shift_u16(src_p[58], 0u, 0xffu);

    return (0);
}

int sr439_cluster_general_information_rr_init(struct sr439_cluster_general_information_rr_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct sr439_cluster_general_information_rr_t));

    return 0;
}

uint8_t sr439_cluster_general_information_rr_cluster_id_1_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_cluster_general_information_rr_cluster_id_1_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_cluster_general_information_rr_cluster_id_1_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint16_t sr439_cluster_general_information_rr_cluster_range_1_encode(double value)
{
    return (uint16_t)(value / 0.01);
}

double sr439_cluster_general_information_rr_cluster_range_1_decode(uint16_t value)
{
    return ((double)value * 0.01);
}

bool sr439_cluster_general_information_rr_cluster_range_1_is_in_range(uint16_t value)
{
    return (value <= 12000u);
}

uint16_t sr439_cluster_general_information_rr_cluster_velocity_1_encode(double value)
{
    return (uint16_t)((value - -111.11) / 0.025);
}

double sr439_cluster_general_information_rr_cluster_velocity_1_decode(uint16_t value)
{
    return (((double)value * 0.025) + -111.11);
}

bool sr439_cluster_general_information_rr_cluster_velocity_1_is_in_range(uint16_t value)
{
    return (value <= 6666u);
}

uint16_t sr439_cluster_general_information_rr_cluster_azimuth_1_encode(double value)
{
    return (uint16_t)((value - -90.0) / 0.05);
}

double sr439_cluster_general_information_rr_cluster_azimuth_1_decode(uint16_t value)
{
    return (((double)value * 0.05) + -90.0);
}

bool sr439_cluster_general_information_rr_cluster_azimuth_1_is_in_range(uint16_t value)
{
    return (value <= 3600u);
}

uint16_t sr439_cluster_general_information_rr_cluster_elevation_1_encode(double value)
{
    return (uint16_t)((value - -25.0) / 0.05);
}

double sr439_cluster_general_information_rr_cluster_elevation_1_decode(uint16_t value)
{
    return (((double)value * 0.05) + -25.0);
}

bool sr439_cluster_general_information_rr_cluster_elevation_1_is_in_range(uint16_t value)
{
    return (value <= 1000u);
}

uint8_t sr439_cluster_general_information_rr_cluster_dyn_prop_1_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_cluster_general_information_rr_cluster_dyn_prop_1_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_cluster_general_information_rr_cluster_dyn_prop_1_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t sr439_cluster_general_information_rr_cluster_prob_of_exist_1_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_cluster_general_information_rr_cluster_prob_of_exist_1_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_cluster_general_information_rr_cluster_prob_of_exist_1_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t sr439_cluster_general_information_rr_cluster_rcs_1_encode(double value)
{
    return (uint8_t)((value - -30.0) / 0.5);
}

double sr439_cluster_general_information_rr_cluster_rcs_1_decode(uint8_t value)
{
    return (((double)value * 0.5) + -30.0);
}

bool sr439_cluster_general_information_rr_cluster_rcs_1_is_in_range(uint8_t value)
{
    return (value <= 254u);
}

uint16_t sr439_cluster_general_information_rr_cluster_power_1_encode(double value)
{
    return (uint16_t)((value - -200.0) / 0.5);
}

double sr439_cluster_general_information_rr_cluster_power_1_decode(uint16_t value)
{
    return (((double)value * 0.5) + -200.0);
}

bool sr439_cluster_general_information_rr_cluster_power_1_is_in_range(uint16_t value)
{
    return (value <= 510u);
}

uint16_t sr439_cluster_general_information_rr_cluster_snr_1_encode(double value)
{
    return (uint16_t)((value - -10.0) / 0.5);
}

double sr439_cluster_general_information_rr_cluster_snr_1_decode(uint16_t value)
{
    return (((double)value * 0.5) + -10.0);
}

bool sr439_cluster_general_information_rr_cluster_snr_1_is_in_range(uint16_t value)
{
    return (value <= 510u);
}

uint8_t sr439_cluster_general_information_rr_cluster_id_2_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_cluster_general_information_rr_cluster_id_2_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_cluster_general_information_rr_cluster_id_2_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint16_t sr439_cluster_general_information_rr_cluster_range_2_encode(double value)
{
    return (uint16_t)(value / 0.01);
}

double sr439_cluster_general_information_rr_cluster_range_2_decode(uint16_t value)
{
    return ((double)value * 0.01);
}

bool sr439_cluster_general_information_rr_cluster_range_2_is_in_range(uint16_t value)
{
    return (value <= 12000u);
}

uint16_t sr439_cluster_general_information_rr_cluster_velocity_2_encode(double value)
{
    return (uint16_t)((value - -111.11) / 0.025);
}

double sr439_cluster_general_information_rr_cluster_velocity_2_decode(uint16_t value)
{
    return (((double)value * 0.025) + -111.11);
}

bool sr439_cluster_general_information_rr_cluster_velocity_2_is_in_range(uint16_t value)
{
    return (value <= 6666u);
}

uint16_t sr439_cluster_general_information_rr_cluster_azimuth_2_encode(double value)
{
    return (uint16_t)((value - -90.0) / 0.05);
}

double sr439_cluster_general_information_rr_cluster_azimuth_2_decode(uint16_t value)
{
    return (((double)value * 0.05) + -90.0);
}

bool sr439_cluster_general_information_rr_cluster_azimuth_2_is_in_range(uint16_t value)
{
    return (value <= 3600u);
}

uint16_t sr439_cluster_general_information_rr_cluster_elevation_2_encode(double value)
{
    return (uint16_t)((value - -25.0) / 0.05);
}

double sr439_cluster_general_information_rr_cluster_elevation_2_decode(uint16_t value)
{
    return (((double)value * 0.05) + -25.0);
}

bool sr439_cluster_general_information_rr_cluster_elevation_2_is_in_range(uint16_t value)
{
    return (value <= 1000u);
}

uint8_t sr439_cluster_general_information_rr_cluster_dyn_prop_2_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_cluster_general_information_rr_cluster_dyn_prop_2_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_cluster_general_information_rr_cluster_dyn_prop_2_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t sr439_cluster_general_information_rr_cluster_prob_of_exist_2_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_cluster_general_information_rr_cluster_prob_of_exist_2_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_cluster_general_information_rr_cluster_prob_of_exist_2_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t sr439_cluster_general_information_rr_cluster_rcs_2_encode(double value)
{
    return (uint8_t)((value - -30.0) / 0.5);
}

double sr439_cluster_general_information_rr_cluster_rcs_2_decode(uint8_t value)
{
    return (((double)value * 0.5) + -30.0);
}

bool sr439_cluster_general_information_rr_cluster_rcs_2_is_in_range(uint8_t value)
{
    return (value <= 254u);
}

uint16_t sr439_cluster_general_information_rr_cluster_power_2_encode(double value)
{
    return (uint16_t)((value - -200.0) / 0.5);
}

double sr439_cluster_general_information_rr_cluster_power_2_decode(uint16_t value)
{
    return (((double)value * 0.5) + -200.0);
}

bool sr439_cluster_general_information_rr_cluster_power_2_is_in_range(uint16_t value)
{
    return (value <= 510u);
}

uint16_t sr439_cluster_general_information_rr_cluster_snr_2_encode(double value)
{
    return (uint16_t)((value - -10.0) / 0.5);
}

double sr439_cluster_general_information_rr_cluster_snr_2_decode(uint16_t value)
{
    return (((double)value * 0.5) + -10.0);
}

bool sr439_cluster_general_information_rr_cluster_snr_2_is_in_range(uint16_t value)
{
    return (value <= 510u);
}

uint8_t sr439_cluster_general_information_rr_cluster_id_3_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_cluster_general_information_rr_cluster_id_3_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_cluster_general_information_rr_cluster_id_3_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint16_t sr439_cluster_general_information_rr_cluster_range_3_encode(double value)
{
    return (uint16_t)(value / 0.01);
}

double sr439_cluster_general_information_rr_cluster_range_3_decode(uint16_t value)
{
    return ((double)value * 0.01);
}

bool sr439_cluster_general_information_rr_cluster_range_3_is_in_range(uint16_t value)
{
    return (value <= 12000u);
}

uint16_t sr439_cluster_general_information_rr_cluster_velocity_3_encode(double value)
{
    return (uint16_t)((value - -111.11) / 0.025);
}

double sr439_cluster_general_information_rr_cluster_velocity_3_decode(uint16_t value)
{
    return (((double)value * 0.025) + -111.11);
}

bool sr439_cluster_general_information_rr_cluster_velocity_3_is_in_range(uint16_t value)
{
    return (value <= 6666u);
}

uint16_t sr439_cluster_general_information_rr_cluster_azimuth_3_encode(double value)
{
    return (uint16_t)((value - -90.0) / 0.05);
}

double sr439_cluster_general_information_rr_cluster_azimuth_3_decode(uint16_t value)
{
    return (((double)value * 0.05) + -90.0);
}

bool sr439_cluster_general_information_rr_cluster_azimuth_3_is_in_range(uint16_t value)
{
    return (value <= 3600u);
}

uint16_t sr439_cluster_general_information_rr_cluster_elevation_3_encode(double value)
{
    return (uint16_t)((value - -25.0) / 0.05);
}

double sr439_cluster_general_information_rr_cluster_elevation_3_decode(uint16_t value)
{
    return (((double)value * 0.05) + -25.0);
}

bool sr439_cluster_general_information_rr_cluster_elevation_3_is_in_range(uint16_t value)
{
    return (value <= 1000u);
}

uint8_t sr439_cluster_general_information_rr_cluster_dyn_prop_3_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_cluster_general_information_rr_cluster_dyn_prop_3_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_cluster_general_information_rr_cluster_dyn_prop_3_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t sr439_cluster_general_information_rr_cluster_prob_of_exist_3_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_cluster_general_information_rr_cluster_prob_of_exist_3_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_cluster_general_information_rr_cluster_prob_of_exist_3_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t sr439_cluster_general_information_rr_cluster_rcs_3_encode(double value)
{
    return (uint8_t)((value - -30.0) / 0.5);
}

double sr439_cluster_general_information_rr_cluster_rcs_3_decode(uint8_t value)
{
    return (((double)value * 0.5) + -30.0);
}

bool sr439_cluster_general_information_rr_cluster_rcs_3_is_in_range(uint8_t value)
{
    return (value <= 254u);
}

uint16_t sr439_cluster_general_information_rr_cluster_power_3_encode(double value)
{
    return (uint16_t)((value - -200.0) / 0.5);
}

double sr439_cluster_general_information_rr_cluster_power_3_decode(uint16_t value)
{
    return (((double)value * 0.5) + -200.0);
}

bool sr439_cluster_general_information_rr_cluster_power_3_is_in_range(uint16_t value)
{
    return (value <= 510u);
}

uint16_t sr439_cluster_general_information_rr_cluster_snr_3_encode(double value)
{
    return (uint16_t)((value - -10.0) / 0.5);
}

double sr439_cluster_general_information_rr_cluster_snr_3_decode(uint16_t value)
{
    return (((double)value * 0.5) + -10.0);
}

bool sr439_cluster_general_information_rr_cluster_snr_3_is_in_range(uint16_t value)
{
    return (value <= 510u);
}

uint8_t sr439_cluster_general_information_rr_cluster_id_4_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_cluster_general_information_rr_cluster_id_4_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_cluster_general_information_rr_cluster_id_4_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint16_t sr439_cluster_general_information_rr_cluster_range_4_encode(double value)
{
    return (uint16_t)(value / 0.01);
}

double sr439_cluster_general_information_rr_cluster_range_4_decode(uint16_t value)
{
    return ((double)value * 0.01);
}

bool sr439_cluster_general_information_rr_cluster_range_4_is_in_range(uint16_t value)
{
    return (value <= 12000u);
}

uint16_t sr439_cluster_general_information_rr_cluster_velocity_4_encode(double value)
{
    return (uint16_t)((value - -111.11) / 0.025);
}

double sr439_cluster_general_information_rr_cluster_velocity_4_decode(uint16_t value)
{
    return (((double)value * 0.025) + -111.11);
}

bool sr439_cluster_general_information_rr_cluster_velocity_4_is_in_range(uint16_t value)
{
    return (value <= 6666u);
}

uint16_t sr439_cluster_general_information_rr_cluster_azimuth_4_encode(double value)
{
    return (uint16_t)((value - -90.0) / 0.05);
}

double sr439_cluster_general_information_rr_cluster_azimuth_4_decode(uint16_t value)
{
    return (((double)value * 0.05) + -90.0);
}

bool sr439_cluster_general_information_rr_cluster_azimuth_4_is_in_range(uint16_t value)
{
    return (value <= 3600u);
}

uint16_t sr439_cluster_general_information_rr_cluster_elevation_4_encode(double value)
{
    return (uint16_t)((value - -25.0) / 0.05);
}

double sr439_cluster_general_information_rr_cluster_elevation_4_decode(uint16_t value)
{
    return (((double)value * 0.05) + -25.0);
}

bool sr439_cluster_general_information_rr_cluster_elevation_4_is_in_range(uint16_t value)
{
    return (value <= 1000u);
}

uint8_t sr439_cluster_general_information_rr_cluster_dyn_prop_4_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_cluster_general_information_rr_cluster_dyn_prop_4_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_cluster_general_information_rr_cluster_dyn_prop_4_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t sr439_cluster_general_information_rr_cluster_prob_of_exist_4_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_cluster_general_information_rr_cluster_prob_of_exist_4_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_cluster_general_information_rr_cluster_prob_of_exist_4_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t sr439_cluster_general_information_rr_cluster_rcs_4_encode(double value)
{
    return (uint8_t)((value - -30.0) / 0.5);
}

double sr439_cluster_general_information_rr_cluster_rcs_4_decode(uint8_t value)
{
    return (((double)value * 0.5) + -30.0);
}

bool sr439_cluster_general_information_rr_cluster_rcs_4_is_in_range(uint8_t value)
{
    return (value <= 254u);
}

uint16_t sr439_cluster_general_information_rr_cluster_power_4_encode(double value)
{
    return (uint16_t)((value - -200.0) / 0.5);
}

double sr439_cluster_general_information_rr_cluster_power_4_decode(uint16_t value)
{
    return (((double)value * 0.5) + -200.0);
}

bool sr439_cluster_general_information_rr_cluster_power_4_is_in_range(uint16_t value)
{
    return (value <= 510u);
}

uint16_t sr439_cluster_general_information_rr_cluster_snr_4_encode(double value)
{
    return (uint16_t)((value - -10.0) / 0.5);
}

double sr439_cluster_general_information_rr_cluster_snr_4_decode(uint16_t value)
{
    return (((double)value * 0.5) + -10.0);
}

bool sr439_cluster_general_information_rr_cluster_snr_4_is_in_range(uint16_t value)
{
    return (value <= 510u);
}

uint8_t sr439_cluster_general_information_rr_cluster_id_5_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_cluster_general_information_rr_cluster_id_5_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_cluster_general_information_rr_cluster_id_5_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint16_t sr439_cluster_general_information_rr_cluster_range_5_encode(double value)
{
    return (uint16_t)(value / 0.01);
}

double sr439_cluster_general_information_rr_cluster_range_5_decode(uint16_t value)
{
    return ((double)value * 0.01);
}

bool sr439_cluster_general_information_rr_cluster_range_5_is_in_range(uint16_t value)
{
    return (value <= 12000u);
}

uint16_t sr439_cluster_general_information_rr_cluster_velocity_5_encode(double value)
{
    return (uint16_t)((value - -111.11) / 0.025);
}

double sr439_cluster_general_information_rr_cluster_velocity_5_decode(uint16_t value)
{
    return (((double)value * 0.025) + -111.11);
}

bool sr439_cluster_general_information_rr_cluster_velocity_5_is_in_range(uint16_t value)
{
    return (value <= 6666u);
}

uint16_t sr439_cluster_general_information_rr_cluster_azimuth_5_encode(double value)
{
    return (uint16_t)((value - -90.0) / 0.05);
}

double sr439_cluster_general_information_rr_cluster_azimuth_5_decode(uint16_t value)
{
    return (((double)value * 0.05) + -90.0);
}

bool sr439_cluster_general_information_rr_cluster_azimuth_5_is_in_range(uint16_t value)
{
    return (value <= 3600u);
}

uint16_t sr439_cluster_general_information_rr_cluster_elevation_5_encode(double value)
{
    return (uint16_t)((value - -25.0) / 0.05);
}

double sr439_cluster_general_information_rr_cluster_elevation_5_decode(uint16_t value)
{
    return (((double)value * 0.05) + -25.0);
}

bool sr439_cluster_general_information_rr_cluster_elevation_5_is_in_range(uint16_t value)
{
    return (value <= 1000u);
}

uint8_t sr439_cluster_general_information_rr_cluster_dyn_prop_5_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_cluster_general_information_rr_cluster_dyn_prop_5_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_cluster_general_information_rr_cluster_dyn_prop_5_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t sr439_cluster_general_information_rr_cluster_prob_of_exist_5_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_cluster_general_information_rr_cluster_prob_of_exist_5_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_cluster_general_information_rr_cluster_prob_of_exist_5_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t sr439_cluster_general_information_rr_cluster_rcs_5_encode(double value)
{
    return (uint8_t)((value - -30.0) / 0.5);
}

double sr439_cluster_general_information_rr_cluster_rcs_5_decode(uint8_t value)
{
    return (((double)value * 0.5) + -30.0);
}

bool sr439_cluster_general_information_rr_cluster_rcs_5_is_in_range(uint8_t value)
{
    return (value <= 254u);
}

uint16_t sr439_cluster_general_information_rr_cluster_power_5_encode(double value)
{
    return (uint16_t)((value - -200.0) / 0.5);
}

double sr439_cluster_general_information_rr_cluster_power_5_decode(uint16_t value)
{
    return (((double)value * 0.5) + -200.0);
}

bool sr439_cluster_general_information_rr_cluster_power_5_is_in_range(uint16_t value)
{
    return (value <= 510u);
}

uint16_t sr439_cluster_general_information_rr_cluster_snr_5_encode(double value)
{
    return (uint16_t)((value - -10.0) / 0.5);
}

double sr439_cluster_general_information_rr_cluster_snr_5_decode(uint16_t value)
{
    return (((double)value * 0.5) + -10.0);
}

bool sr439_cluster_general_information_rr_cluster_snr_5_is_in_range(uint16_t value)
{
    return (value <= 510u);
}

int sr439_cluster_general_information_fr_pack(
    uint8_t *dst_p,
    const struct sr439_cluster_general_information_fr_t *src_p,
    size_t size)
{
    if (size < 64u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 64);

    dst_p[0] |= pack_left_shift_u8(src_p->cluster_id_1, 0u, 0xffu);
    dst_p[1] |= pack_right_shift_u16(src_p->cluster_range_1, 6u, 0xffu);
    dst_p[2] |= pack_left_shift_u16(src_p->cluster_range_1, 2u, 0xfcu);
    dst_p[2] |= pack_right_shift_u16(src_p->cluster_velocity_1, 11u, 0x03u);
    dst_p[3] |= pack_right_shift_u16(src_p->cluster_velocity_1, 3u, 0xffu);
    dst_p[4] |= pack_left_shift_u16(src_p->cluster_velocity_1, 5u, 0xe0u);
    dst_p[4] |= pack_right_shift_u16(src_p->cluster_azimuth_1, 7u, 0x1fu);
    dst_p[5] |= pack_left_shift_u16(src_p->cluster_azimuth_1, 1u, 0xfeu);
    dst_p[5] |= pack_right_shift_u16(src_p->cluster_elevation_1, 9u, 0x01u);
    dst_p[6] |= pack_right_shift_u16(src_p->cluster_elevation_1, 1u, 0xffu);
    dst_p[7] |= pack_left_shift_u16(src_p->cluster_elevation_1, 7u, 0x80u);
    dst_p[7] |= pack_left_shift_u8(src_p->cluster_dyn_prop_1, 5u, 0x60u);
    dst_p[7] |= pack_left_shift_u8(src_p->cluster_prob_of_exist_1, 2u, 0x1cu);
    dst_p[7] |= pack_right_shift_u8(src_p->cluster_rcs_1, 6u, 0x03u);
    dst_p[8] |= pack_left_shift_u8(src_p->cluster_rcs_1, 2u, 0xfcu);
    dst_p[8] |= pack_right_shift_u16(src_p->cluster_power_1, 7u, 0x03u);
    dst_p[9] |= pack_left_shift_u16(src_p->cluster_power_1, 1u, 0xfeu);
    dst_p[9] |= pack_right_shift_u16(src_p->cluster_snr_1, 8u, 0x01u);
    dst_p[10] |= pack_left_shift_u16(src_p->cluster_snr_1, 0u, 0xffu);
    dst_p[12] |= pack_left_shift_u8(src_p->cluster_id_2, 0u, 0xffu);
    dst_p[13] |= pack_right_shift_u16(src_p->cluster_range_2, 6u, 0xffu);
    dst_p[14] |= pack_left_shift_u16(src_p->cluster_range_2, 2u, 0xfcu);
    dst_p[14] |= pack_right_shift_u16(src_p->cluster_velocity_2, 11u, 0x03u);
    dst_p[15] |= pack_right_shift_u16(src_p->cluster_velocity_2, 3u, 0xffu);
    dst_p[16] |= pack_left_shift_u16(src_p->cluster_velocity_2, 5u, 0xe0u);
    dst_p[16] |= pack_right_shift_u16(src_p->cluster_azimuth_2, 7u, 0x1fu);
    dst_p[17] |= pack_left_shift_u16(src_p->cluster_azimuth_2, 1u, 0xfeu);
    dst_p[17] |= pack_right_shift_u16(src_p->cluster_elevation_2, 9u, 0x01u);
    dst_p[18] |= pack_right_shift_u16(src_p->cluster_elevation_2, 1u, 0xffu);
    dst_p[19] |= pack_left_shift_u16(src_p->cluster_elevation_2, 7u, 0x80u);
    dst_p[19] |= pack_left_shift_u8(src_p->cluster_dyn_prop_2, 5u, 0x60u);
    dst_p[19] |= pack_left_shift_u8(src_p->cluster_prob_of_exist_2, 2u, 0x1cu);
    dst_p[19] |= pack_right_shift_u8(src_p->cluster_rcs_2, 6u, 0x03u);
    dst_p[20] |= pack_left_shift_u8(src_p->cluster_rcs_2, 2u, 0xfcu);
    dst_p[20] |= pack_right_shift_u16(src_p->cluster_power_2, 7u, 0x03u);
    dst_p[21] |= pack_left_shift_u16(src_p->cluster_power_2, 1u, 0xfeu);
    dst_p[21] |= pack_right_shift_u16(src_p->cluster_snr_2, 8u, 0x01u);
    dst_p[22] |= pack_left_shift_u16(src_p->cluster_snr_2, 0u, 0xffu);
    dst_p[24] |= pack_left_shift_u8(src_p->cluster_id_3, 0u, 0xffu);
    dst_p[25] |= pack_right_shift_u16(src_p->cluster_range_3, 6u, 0xffu);
    dst_p[26] |= pack_left_shift_u16(src_p->cluster_range_3, 2u, 0xfcu);
    dst_p[26] |= pack_right_shift_u16(src_p->cluster_velocity_3, 11u, 0x03u);
    dst_p[27] |= pack_right_shift_u16(src_p->cluster_velocity_3, 3u, 0xffu);
    dst_p[28] |= pack_left_shift_u16(src_p->cluster_velocity_3, 5u, 0xe0u);
    dst_p[28] |= pack_right_shift_u16(src_p->cluster_azimuth_3, 7u, 0x1fu);
    dst_p[29] |= pack_left_shift_u16(src_p->cluster_azimuth_3, 1u, 0xfeu);
    dst_p[29] |= pack_right_shift_u16(src_p->cluster_elevation_3, 9u, 0x01u);
    dst_p[30] |= pack_right_shift_u16(src_p->cluster_elevation_3, 1u, 0xffu);
    dst_p[31] |= pack_left_shift_u16(src_p->cluster_elevation_3, 7u, 0x80u);
    dst_p[31] |= pack_left_shift_u8(src_p->cluster_dyn_prop_3, 5u, 0x60u);
    dst_p[31] |= pack_left_shift_u8(src_p->cluster_prob_of_exist_3, 2u, 0x1cu);
    dst_p[31] |= pack_right_shift_u8(src_p->cluster_rcs_3, 6u, 0x03u);
    dst_p[32] |= pack_left_shift_u8(src_p->cluster_rcs_3, 2u, 0xfcu);
    dst_p[32] |= pack_right_shift_u16(src_p->cluster_power_3, 7u, 0x03u);
    dst_p[33] |= pack_left_shift_u16(src_p->cluster_power_3, 1u, 0xfeu);
    dst_p[33] |= pack_right_shift_u16(src_p->cluster_snr_3, 8u, 0x01u);
    dst_p[34] |= pack_left_shift_u16(src_p->cluster_snr_3, 0u, 0xffu);
    dst_p[36] |= pack_left_shift_u8(src_p->cluster_id_4, 0u, 0xffu);
    dst_p[37] |= pack_right_shift_u16(src_p->cluster_range_4, 6u, 0xffu);
    dst_p[38] |= pack_left_shift_u16(src_p->cluster_range_4, 2u, 0xfcu);
    dst_p[38] |= pack_right_shift_u16(src_p->cluster_velocity_4, 11u, 0x03u);
    dst_p[39] |= pack_right_shift_u16(src_p->cluster_velocity_4, 3u, 0xffu);
    dst_p[40] |= pack_left_shift_u16(src_p->cluster_velocity_4, 5u, 0xe0u);
    dst_p[40] |= pack_right_shift_u16(src_p->cluster_azimuth_4, 7u, 0x1fu);
    dst_p[41] |= pack_left_shift_u16(src_p->cluster_azimuth_4, 1u, 0xfeu);
    dst_p[41] |= pack_right_shift_u16(src_p->cluster_elevation_4, 9u, 0x01u);
    dst_p[42] |= pack_right_shift_u16(src_p->cluster_elevation_4, 1u, 0xffu);
    dst_p[43] |= pack_left_shift_u16(src_p->cluster_elevation_4, 7u, 0x80u);
    dst_p[43] |= pack_left_shift_u8(src_p->cluster_dyn_prop_4, 5u, 0x60u);
    dst_p[43] |= pack_left_shift_u8(src_p->cluster_prob_of_exist_4, 2u, 0x1cu);
    dst_p[43] |= pack_right_shift_u8(src_p->cluster_rcs_4, 6u, 0x03u);
    dst_p[44] |= pack_left_shift_u8(src_p->cluster_rcs_4, 2u, 0xfcu);
    dst_p[44] |= pack_right_shift_u16(src_p->cluster_power_4, 7u, 0x03u);
    dst_p[45] |= pack_left_shift_u16(src_p->cluster_power_4, 1u, 0xfeu);
    dst_p[45] |= pack_right_shift_u16(src_p->cluster_snr_4, 8u, 0x01u);
    dst_p[46] |= pack_left_shift_u16(src_p->cluster_snr_4, 0u, 0xffu);
    dst_p[48] |= pack_left_shift_u8(src_p->cluster_id_5, 0u, 0xffu);
    dst_p[49] |= pack_right_shift_u16(src_p->cluster_range_5, 6u, 0xffu);
    dst_p[50] |= pack_left_shift_u16(src_p->cluster_range_5, 2u, 0xfcu);
    dst_p[50] |= pack_right_shift_u16(src_p->cluster_velocity_5, 11u, 0x03u);
    dst_p[51] |= pack_right_shift_u16(src_p->cluster_velocity_5, 3u, 0xffu);
    dst_p[52] |= pack_left_shift_u16(src_p->cluster_velocity_5, 5u, 0xe0u);
    dst_p[52] |= pack_right_shift_u16(src_p->cluster_azimuth_5, 7u, 0x1fu);
    dst_p[53] |= pack_left_shift_u16(src_p->cluster_azimuth_5, 1u, 0xfeu);
    dst_p[53] |= pack_right_shift_u16(src_p->cluster_elevation_5, 9u, 0x01u);
    dst_p[54] |= pack_right_shift_u16(src_p->cluster_elevation_5, 1u, 0xffu);
    dst_p[55] |= pack_left_shift_u16(src_p->cluster_elevation_5, 7u, 0x80u);
    dst_p[55] |= pack_left_shift_u8(src_p->cluster_dyn_prop_5, 5u, 0x60u);
    dst_p[55] |= pack_left_shift_u8(src_p->cluster_prob_of_exist_5, 2u, 0x1cu);
    dst_p[55] |= pack_right_shift_u8(src_p->cluster_rcs_5, 6u, 0x03u);
    dst_p[56] |= pack_left_shift_u8(src_p->cluster_rcs_5, 2u, 0xfcu);
    dst_p[56] |= pack_right_shift_u16(src_p->cluster_power_5, 7u, 0x03u);
    dst_p[57] |= pack_left_shift_u16(src_p->cluster_power_5, 1u, 0xfeu);
    dst_p[57] |= pack_right_shift_u16(src_p->cluster_snr_5, 8u, 0x01u);
    dst_p[58] |= pack_left_shift_u16(src_p->cluster_snr_5, 0u, 0xffu);

    return (64);
}

int sr439_cluster_general_information_fr_unpack(
    struct sr439_cluster_general_information_fr_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 64u) {
        return (-EINVAL);
    }

    dst_p->cluster_id_1 = unpack_right_shift_u8(src_p[0], 0u, 0xffu);
    dst_p->cluster_range_1 = unpack_left_shift_u16(src_p[1], 6u, 0xffu);
    dst_p->cluster_range_1 |= unpack_right_shift_u16(src_p[2], 2u, 0xfcu);
    dst_p->cluster_velocity_1 = unpack_left_shift_u16(src_p[2], 11u, 0x03u);
    dst_p->cluster_velocity_1 |= unpack_left_shift_u16(src_p[3], 3u, 0xffu);
    dst_p->cluster_velocity_1 |= unpack_right_shift_u16(src_p[4], 5u, 0xe0u);
    dst_p->cluster_azimuth_1 = unpack_left_shift_u16(src_p[4], 7u, 0x1fu);
    dst_p->cluster_azimuth_1 |= unpack_right_shift_u16(src_p[5], 1u, 0xfeu);
    dst_p->cluster_elevation_1 = unpack_left_shift_u16(src_p[5], 9u, 0x01u);
    dst_p->cluster_elevation_1 |= unpack_left_shift_u16(src_p[6], 1u, 0xffu);
    dst_p->cluster_elevation_1 |= unpack_right_shift_u16(src_p[7], 7u, 0x80u);
    dst_p->cluster_dyn_prop_1 = unpack_right_shift_u8(src_p[7], 5u, 0x60u);
    dst_p->cluster_prob_of_exist_1 = unpack_right_shift_u8(src_p[7], 2u, 0x1cu);
    dst_p->cluster_rcs_1 = unpack_left_shift_u8(src_p[7], 6u, 0x03u);
    dst_p->cluster_rcs_1 |= unpack_right_shift_u8(src_p[8], 2u, 0xfcu);
    dst_p->cluster_power_1 = unpack_left_shift_u16(src_p[8], 7u, 0x03u);
    dst_p->cluster_power_1 |= unpack_right_shift_u16(src_p[9], 1u, 0xfeu);
    dst_p->cluster_snr_1 = unpack_left_shift_u16(src_p[9], 8u, 0x01u);
    dst_p->cluster_snr_1 |= unpack_right_shift_u16(src_p[10], 0u, 0xffu);
    dst_p->cluster_id_2 = unpack_right_shift_u8(src_p[12], 0u, 0xffu);
    dst_p->cluster_range_2 = unpack_left_shift_u16(src_p[13], 6u, 0xffu);
    dst_p->cluster_range_2 |= unpack_right_shift_u16(src_p[14], 2u, 0xfcu);
    dst_p->cluster_velocity_2 = unpack_left_shift_u16(src_p[14], 11u, 0x03u);
    dst_p->cluster_velocity_2 |= unpack_left_shift_u16(src_p[15], 3u, 0xffu);
    dst_p->cluster_velocity_2 |= unpack_right_shift_u16(src_p[16], 5u, 0xe0u);
    dst_p->cluster_azimuth_2 = unpack_left_shift_u16(src_p[16], 7u, 0x1fu);
    dst_p->cluster_azimuth_2 |= unpack_right_shift_u16(src_p[17], 1u, 0xfeu);
    dst_p->cluster_elevation_2 = unpack_left_shift_u16(src_p[17], 9u, 0x01u);
    dst_p->cluster_elevation_2 |= unpack_left_shift_u16(src_p[18], 1u, 0xffu);
    dst_p->cluster_elevation_2 |= unpack_right_shift_u16(src_p[19], 7u, 0x80u);
    dst_p->cluster_dyn_prop_2 = unpack_right_shift_u8(src_p[19], 5u, 0x60u);
    dst_p->cluster_prob_of_exist_2 = unpack_right_shift_u8(src_p[19], 2u, 0x1cu);
    dst_p->cluster_rcs_2 = unpack_left_shift_u8(src_p[19], 6u, 0x03u);
    dst_p->cluster_rcs_2 |= unpack_right_shift_u8(src_p[20], 2u, 0xfcu);
    dst_p->cluster_power_2 = unpack_left_shift_u16(src_p[20], 7u, 0x03u);
    dst_p->cluster_power_2 |= unpack_right_shift_u16(src_p[21], 1u, 0xfeu);
    dst_p->cluster_snr_2 = unpack_left_shift_u16(src_p[21], 8u, 0x01u);
    dst_p->cluster_snr_2 |= unpack_right_shift_u16(src_p[22], 0u, 0xffu);
    dst_p->cluster_id_3 = unpack_right_shift_u8(src_p[24], 0u, 0xffu);
    dst_p->cluster_range_3 = unpack_left_shift_u16(src_p[25], 6u, 0xffu);
    dst_p->cluster_range_3 |= unpack_right_shift_u16(src_p[26], 2u, 0xfcu);
    dst_p->cluster_velocity_3 = unpack_left_shift_u16(src_p[26], 11u, 0x03u);
    dst_p->cluster_velocity_3 |= unpack_left_shift_u16(src_p[27], 3u, 0xffu);
    dst_p->cluster_velocity_3 |= unpack_right_shift_u16(src_p[28], 5u, 0xe0u);
    dst_p->cluster_azimuth_3 = unpack_left_shift_u16(src_p[28], 7u, 0x1fu);
    dst_p->cluster_azimuth_3 |= unpack_right_shift_u16(src_p[29], 1u, 0xfeu);
    dst_p->cluster_elevation_3 = unpack_left_shift_u16(src_p[29], 9u, 0x01u);
    dst_p->cluster_elevation_3 |= unpack_left_shift_u16(src_p[30], 1u, 0xffu);
    dst_p->cluster_elevation_3 |= unpack_right_shift_u16(src_p[31], 7u, 0x80u);
    dst_p->cluster_dyn_prop_3 = unpack_right_shift_u8(src_p[31], 5u, 0x60u);
    dst_p->cluster_prob_of_exist_3 = unpack_right_shift_u8(src_p[31], 2u, 0x1cu);
    dst_p->cluster_rcs_3 = unpack_left_shift_u8(src_p[31], 6u, 0x03u);
    dst_p->cluster_rcs_3 |= unpack_right_shift_u8(src_p[32], 2u, 0xfcu);
    dst_p->cluster_power_3 = unpack_left_shift_u16(src_p[32], 7u, 0x03u);
    dst_p->cluster_power_3 |= unpack_right_shift_u16(src_p[33], 1u, 0xfeu);
    dst_p->cluster_snr_3 = unpack_left_shift_u16(src_p[33], 8u, 0x01u);
    dst_p->cluster_snr_3 |= unpack_right_shift_u16(src_p[34], 0u, 0xffu);
    dst_p->cluster_id_4 = unpack_right_shift_u8(src_p[36], 0u, 0xffu);
    dst_p->cluster_range_4 = unpack_left_shift_u16(src_p[37], 6u, 0xffu);
    dst_p->cluster_range_4 |= unpack_right_shift_u16(src_p[38], 2u, 0xfcu);
    dst_p->cluster_velocity_4 = unpack_left_shift_u16(src_p[38], 11u, 0x03u);
    dst_p->cluster_velocity_4 |= unpack_left_shift_u16(src_p[39], 3u, 0xffu);
    dst_p->cluster_velocity_4 |= unpack_right_shift_u16(src_p[40], 5u, 0xe0u);
    dst_p->cluster_azimuth_4 = unpack_left_shift_u16(src_p[40], 7u, 0x1fu);
    dst_p->cluster_azimuth_4 |= unpack_right_shift_u16(src_p[41], 1u, 0xfeu);
    dst_p->cluster_elevation_4 = unpack_left_shift_u16(src_p[41], 9u, 0x01u);
    dst_p->cluster_elevation_4 |= unpack_left_shift_u16(src_p[42], 1u, 0xffu);
    dst_p->cluster_elevation_4 |= unpack_right_shift_u16(src_p[43], 7u, 0x80u);
    dst_p->cluster_dyn_prop_4 = unpack_right_shift_u8(src_p[43], 5u, 0x60u);
    dst_p->cluster_prob_of_exist_4 = unpack_right_shift_u8(src_p[43], 2u, 0x1cu);
    dst_p->cluster_rcs_4 = unpack_left_shift_u8(src_p[43], 6u, 0x03u);
    dst_p->cluster_rcs_4 |= unpack_right_shift_u8(src_p[44], 2u, 0xfcu);
    dst_p->cluster_power_4 = unpack_left_shift_u16(src_p[44], 7u, 0x03u);
    dst_p->cluster_power_4 |= unpack_right_shift_u16(src_p[45], 1u, 0xfeu);
    dst_p->cluster_snr_4 = unpack_left_shift_u16(src_p[45], 8u, 0x01u);
    dst_p->cluster_snr_4 |= unpack_right_shift_u16(src_p[46], 0u, 0xffu);
    dst_p->cluster_id_5 = unpack_right_shift_u8(src_p[48], 0u, 0xffu);
    dst_p->cluster_range_5 = unpack_left_shift_u16(src_p[49], 6u, 0xffu);
    dst_p->cluster_range_5 |= unpack_right_shift_u16(src_p[50], 2u, 0xfcu);
    dst_p->cluster_velocity_5 = unpack_left_shift_u16(src_p[50], 11u, 0x03u);
    dst_p->cluster_velocity_5 |= unpack_left_shift_u16(src_p[51], 3u, 0xffu);
    dst_p->cluster_velocity_5 |= unpack_right_shift_u16(src_p[52], 5u, 0xe0u);
    dst_p->cluster_azimuth_5 = unpack_left_shift_u16(src_p[52], 7u, 0x1fu);
    dst_p->cluster_azimuth_5 |= unpack_right_shift_u16(src_p[53], 1u, 0xfeu);
    dst_p->cluster_elevation_5 = unpack_left_shift_u16(src_p[53], 9u, 0x01u);
    dst_p->cluster_elevation_5 |= unpack_left_shift_u16(src_p[54], 1u, 0xffu);
    dst_p->cluster_elevation_5 |= unpack_right_shift_u16(src_p[55], 7u, 0x80u);
    dst_p->cluster_dyn_prop_5 = unpack_right_shift_u8(src_p[55], 5u, 0x60u);
    dst_p->cluster_prob_of_exist_5 = unpack_right_shift_u8(src_p[55], 2u, 0x1cu);
    dst_p->cluster_rcs_5 = unpack_left_shift_u8(src_p[55], 6u, 0x03u);
    dst_p->cluster_rcs_5 |= unpack_right_shift_u8(src_p[56], 2u, 0xfcu);
    dst_p->cluster_power_5 = unpack_left_shift_u16(src_p[56], 7u, 0x03u);
    dst_p->cluster_power_5 |= unpack_right_shift_u16(src_p[57], 1u, 0xfeu);
    dst_p->cluster_snr_5 = unpack_left_shift_u16(src_p[57], 8u, 0x01u);
    dst_p->cluster_snr_5 |= unpack_right_shift_u16(src_p[58], 0u, 0xffu);

    return (0);
}

int sr439_cluster_general_information_fr_init(struct sr439_cluster_general_information_fr_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct sr439_cluster_general_information_fr_t));

    return 0;
}

uint8_t sr439_cluster_general_information_fr_cluster_id_1_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_cluster_general_information_fr_cluster_id_1_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_cluster_general_information_fr_cluster_id_1_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint16_t sr439_cluster_general_information_fr_cluster_range_1_encode(double value)
{
    return (uint16_t)(value / 0.01);
}

double sr439_cluster_general_information_fr_cluster_range_1_decode(uint16_t value)
{
    return ((double)value * 0.01);
}

bool sr439_cluster_general_information_fr_cluster_range_1_is_in_range(uint16_t value)
{
    return (value <= 12000u);
}

uint16_t sr439_cluster_general_information_fr_cluster_velocity_1_encode(double value)
{
    return (uint16_t)((value - -111.11) / 0.025);
}

double sr439_cluster_general_information_fr_cluster_velocity_1_decode(uint16_t value)
{
    return (((double)value * 0.025) + -111.11);
}

bool sr439_cluster_general_information_fr_cluster_velocity_1_is_in_range(uint16_t value)
{
    return (value <= 6666u);
}

uint16_t sr439_cluster_general_information_fr_cluster_azimuth_1_encode(double value)
{
    return (uint16_t)((value - -90.0) / 0.05);
}

double sr439_cluster_general_information_fr_cluster_azimuth_1_decode(uint16_t value)
{
    return (((double)value * 0.05) + -90.0);
}

bool sr439_cluster_general_information_fr_cluster_azimuth_1_is_in_range(uint16_t value)
{
    return (value <= 3600u);
}

uint16_t sr439_cluster_general_information_fr_cluster_elevation_1_encode(double value)
{
    return (uint16_t)((value - -25.0) / 0.05);
}

double sr439_cluster_general_information_fr_cluster_elevation_1_decode(uint16_t value)
{
    return (((double)value * 0.05) + -25.0);
}

bool sr439_cluster_general_information_fr_cluster_elevation_1_is_in_range(uint16_t value)
{
    return (value <= 1000u);
}

uint8_t sr439_cluster_general_information_fr_cluster_dyn_prop_1_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_cluster_general_information_fr_cluster_dyn_prop_1_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_cluster_general_information_fr_cluster_dyn_prop_1_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t sr439_cluster_general_information_fr_cluster_prob_of_exist_1_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_cluster_general_information_fr_cluster_prob_of_exist_1_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_cluster_general_information_fr_cluster_prob_of_exist_1_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t sr439_cluster_general_information_fr_cluster_rcs_1_encode(double value)
{
    return (uint8_t)((value - -30.0) / 0.5);
}

double sr439_cluster_general_information_fr_cluster_rcs_1_decode(uint8_t value)
{
    return (((double)value * 0.5) + -30.0);
}

bool sr439_cluster_general_information_fr_cluster_rcs_1_is_in_range(uint8_t value)
{
    return (value <= 254u);
}

uint16_t sr439_cluster_general_information_fr_cluster_power_1_encode(double value)
{
    return (uint16_t)((value - -200.0) / 0.5);
}

double sr439_cluster_general_information_fr_cluster_power_1_decode(uint16_t value)
{
    return (((double)value * 0.5) + -200.0);
}

bool sr439_cluster_general_information_fr_cluster_power_1_is_in_range(uint16_t value)
{
    return (value <= 510u);
}

uint16_t sr439_cluster_general_information_fr_cluster_snr_1_encode(double value)
{
    return (uint16_t)((value - -10.0) / 0.5);
}

double sr439_cluster_general_information_fr_cluster_snr_1_decode(uint16_t value)
{
    return (((double)value * 0.5) + -10.0);
}

bool sr439_cluster_general_information_fr_cluster_snr_1_is_in_range(uint16_t value)
{
    return (value <= 510u);
}

uint8_t sr439_cluster_general_information_fr_cluster_id_2_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_cluster_general_information_fr_cluster_id_2_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_cluster_general_information_fr_cluster_id_2_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint16_t sr439_cluster_general_information_fr_cluster_range_2_encode(double value)
{
    return (uint16_t)(value / 0.01);
}

double sr439_cluster_general_information_fr_cluster_range_2_decode(uint16_t value)
{
    return ((double)value * 0.01);
}

bool sr439_cluster_general_information_fr_cluster_range_2_is_in_range(uint16_t value)
{
    return (value <= 12000u);
}

uint16_t sr439_cluster_general_information_fr_cluster_velocity_2_encode(double value)
{
    return (uint16_t)((value - -111.11) / 0.025);
}

double sr439_cluster_general_information_fr_cluster_velocity_2_decode(uint16_t value)
{
    return (((double)value * 0.025) + -111.11);
}

bool sr439_cluster_general_information_fr_cluster_velocity_2_is_in_range(uint16_t value)
{
    return (value <= 6666u);
}

uint16_t sr439_cluster_general_information_fr_cluster_azimuth_2_encode(double value)
{
    return (uint16_t)((value - -90.0) / 0.05);
}

double sr439_cluster_general_information_fr_cluster_azimuth_2_decode(uint16_t value)
{
    return (((double)value * 0.05) + -90.0);
}

bool sr439_cluster_general_information_fr_cluster_azimuth_2_is_in_range(uint16_t value)
{
    return (value <= 3600u);
}

uint16_t sr439_cluster_general_information_fr_cluster_elevation_2_encode(double value)
{
    return (uint16_t)((value - -25.0) / 0.05);
}

double sr439_cluster_general_information_fr_cluster_elevation_2_decode(uint16_t value)
{
    return (((double)value * 0.05) + -25.0);
}

bool sr439_cluster_general_information_fr_cluster_elevation_2_is_in_range(uint16_t value)
{
    return (value <= 1000u);
}

uint8_t sr439_cluster_general_information_fr_cluster_dyn_prop_2_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_cluster_general_information_fr_cluster_dyn_prop_2_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_cluster_general_information_fr_cluster_dyn_prop_2_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t sr439_cluster_general_information_fr_cluster_prob_of_exist_2_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_cluster_general_information_fr_cluster_prob_of_exist_2_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_cluster_general_information_fr_cluster_prob_of_exist_2_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t sr439_cluster_general_information_fr_cluster_rcs_2_encode(double value)
{
    return (uint8_t)((value - -30.0) / 0.5);
}

double sr439_cluster_general_information_fr_cluster_rcs_2_decode(uint8_t value)
{
    return (((double)value * 0.5) + -30.0);
}

bool sr439_cluster_general_information_fr_cluster_rcs_2_is_in_range(uint8_t value)
{
    return (value <= 254u);
}

uint16_t sr439_cluster_general_information_fr_cluster_power_2_encode(double value)
{
    return (uint16_t)((value - -200.0) / 0.5);
}

double sr439_cluster_general_information_fr_cluster_power_2_decode(uint16_t value)
{
    return (((double)value * 0.5) + -200.0);
}

bool sr439_cluster_general_information_fr_cluster_power_2_is_in_range(uint16_t value)
{
    return (value <= 510u);
}

uint16_t sr439_cluster_general_information_fr_cluster_snr_2_encode(double value)
{
    return (uint16_t)((value - -10.0) / 0.5);
}

double sr439_cluster_general_information_fr_cluster_snr_2_decode(uint16_t value)
{
    return (((double)value * 0.5) + -10.0);
}

bool sr439_cluster_general_information_fr_cluster_snr_2_is_in_range(uint16_t value)
{
    return (value <= 510u);
}

uint8_t sr439_cluster_general_information_fr_cluster_id_3_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_cluster_general_information_fr_cluster_id_3_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_cluster_general_information_fr_cluster_id_3_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint16_t sr439_cluster_general_information_fr_cluster_range_3_encode(double value)
{
    return (uint16_t)(value / 0.01);
}

double sr439_cluster_general_information_fr_cluster_range_3_decode(uint16_t value)
{
    return ((double)value * 0.01);
}

bool sr439_cluster_general_information_fr_cluster_range_3_is_in_range(uint16_t value)
{
    return (value <= 12000u);
}

uint16_t sr439_cluster_general_information_fr_cluster_velocity_3_encode(double value)
{
    return (uint16_t)((value - -111.11) / 0.025);
}

double sr439_cluster_general_information_fr_cluster_velocity_3_decode(uint16_t value)
{
    return (((double)value * 0.025) + -111.11);
}

bool sr439_cluster_general_information_fr_cluster_velocity_3_is_in_range(uint16_t value)
{
    return (value <= 6666u);
}

uint16_t sr439_cluster_general_information_fr_cluster_azimuth_3_encode(double value)
{
    return (uint16_t)((value - -90.0) / 0.05);
}

double sr439_cluster_general_information_fr_cluster_azimuth_3_decode(uint16_t value)
{
    return (((double)value * 0.05) + -90.0);
}

bool sr439_cluster_general_information_fr_cluster_azimuth_3_is_in_range(uint16_t value)
{
    return (value <= 3600u);
}

uint16_t sr439_cluster_general_information_fr_cluster_elevation_3_encode(double value)
{
    return (uint16_t)((value - -25.0) / 0.05);
}

double sr439_cluster_general_information_fr_cluster_elevation_3_decode(uint16_t value)
{
    return (((double)value * 0.05) + -25.0);
}

bool sr439_cluster_general_information_fr_cluster_elevation_3_is_in_range(uint16_t value)
{
    return (value <= 1000u);
}

uint8_t sr439_cluster_general_information_fr_cluster_dyn_prop_3_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_cluster_general_information_fr_cluster_dyn_prop_3_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_cluster_general_information_fr_cluster_dyn_prop_3_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t sr439_cluster_general_information_fr_cluster_prob_of_exist_3_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_cluster_general_information_fr_cluster_prob_of_exist_3_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_cluster_general_information_fr_cluster_prob_of_exist_3_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t sr439_cluster_general_information_fr_cluster_rcs_3_encode(double value)
{
    return (uint8_t)((value - -30.0) / 0.5);
}

double sr439_cluster_general_information_fr_cluster_rcs_3_decode(uint8_t value)
{
    return (((double)value * 0.5) + -30.0);
}

bool sr439_cluster_general_information_fr_cluster_rcs_3_is_in_range(uint8_t value)
{
    return (value <= 254u);
}

uint16_t sr439_cluster_general_information_fr_cluster_power_3_encode(double value)
{
    return (uint16_t)((value - -200.0) / 0.5);
}

double sr439_cluster_general_information_fr_cluster_power_3_decode(uint16_t value)
{
    return (((double)value * 0.5) + -200.0);
}

bool sr439_cluster_general_information_fr_cluster_power_3_is_in_range(uint16_t value)
{
    return (value <= 510u);
}

uint16_t sr439_cluster_general_information_fr_cluster_snr_3_encode(double value)
{
    return (uint16_t)((value - -10.0) / 0.5);
}

double sr439_cluster_general_information_fr_cluster_snr_3_decode(uint16_t value)
{
    return (((double)value * 0.5) + -10.0);
}

bool sr439_cluster_general_information_fr_cluster_snr_3_is_in_range(uint16_t value)
{
    return (value <= 510u);
}

uint8_t sr439_cluster_general_information_fr_cluster_id_4_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_cluster_general_information_fr_cluster_id_4_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_cluster_general_information_fr_cluster_id_4_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint16_t sr439_cluster_general_information_fr_cluster_range_4_encode(double value)
{
    return (uint16_t)(value / 0.01);
}

double sr439_cluster_general_information_fr_cluster_range_4_decode(uint16_t value)
{
    return ((double)value * 0.01);
}

bool sr439_cluster_general_information_fr_cluster_range_4_is_in_range(uint16_t value)
{
    return (value <= 12000u);
}

uint16_t sr439_cluster_general_information_fr_cluster_velocity_4_encode(double value)
{
    return (uint16_t)((value - -111.11) / 0.025);
}

double sr439_cluster_general_information_fr_cluster_velocity_4_decode(uint16_t value)
{
    return (((double)value * 0.025) + -111.11);
}

bool sr439_cluster_general_information_fr_cluster_velocity_4_is_in_range(uint16_t value)
{
    return (value <= 6666u);
}

uint16_t sr439_cluster_general_information_fr_cluster_azimuth_4_encode(double value)
{
    return (uint16_t)((value - -90.0) / 0.05);
}

double sr439_cluster_general_information_fr_cluster_azimuth_4_decode(uint16_t value)
{
    return (((double)value * 0.05) + -90.0);
}

bool sr439_cluster_general_information_fr_cluster_azimuth_4_is_in_range(uint16_t value)
{
    return (value <= 3600u);
}

uint16_t sr439_cluster_general_information_fr_cluster_elevation_4_encode(double value)
{
    return (uint16_t)((value - -25.0) / 0.05);
}

double sr439_cluster_general_information_fr_cluster_elevation_4_decode(uint16_t value)
{
    return (((double)value * 0.05) + -25.0);
}

bool sr439_cluster_general_information_fr_cluster_elevation_4_is_in_range(uint16_t value)
{
    return (value <= 1000u);
}

uint8_t sr439_cluster_general_information_fr_cluster_dyn_prop_4_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_cluster_general_information_fr_cluster_dyn_prop_4_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_cluster_general_information_fr_cluster_dyn_prop_4_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t sr439_cluster_general_information_fr_cluster_prob_of_exist_4_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_cluster_general_information_fr_cluster_prob_of_exist_4_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_cluster_general_information_fr_cluster_prob_of_exist_4_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t sr439_cluster_general_information_fr_cluster_rcs_4_encode(double value)
{
    return (uint8_t)((value - -30.0) / 0.5);
}

double sr439_cluster_general_information_fr_cluster_rcs_4_decode(uint8_t value)
{
    return (((double)value * 0.5) + -30.0);
}

bool sr439_cluster_general_information_fr_cluster_rcs_4_is_in_range(uint8_t value)
{
    return (value <= 254u);
}

uint16_t sr439_cluster_general_information_fr_cluster_power_4_encode(double value)
{
    return (uint16_t)((value - -200.0) / 0.5);
}

double sr439_cluster_general_information_fr_cluster_power_4_decode(uint16_t value)
{
    return (((double)value * 0.5) + -200.0);
}

bool sr439_cluster_general_information_fr_cluster_power_4_is_in_range(uint16_t value)
{
    return (value <= 510u);
}

uint16_t sr439_cluster_general_information_fr_cluster_snr_4_encode(double value)
{
    return (uint16_t)((value - -10.0) / 0.5);
}

double sr439_cluster_general_information_fr_cluster_snr_4_decode(uint16_t value)
{
    return (((double)value * 0.5) + -10.0);
}

bool sr439_cluster_general_information_fr_cluster_snr_4_is_in_range(uint16_t value)
{
    return (value <= 510u);
}

uint8_t sr439_cluster_general_information_fr_cluster_id_5_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_cluster_general_information_fr_cluster_id_5_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_cluster_general_information_fr_cluster_id_5_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint16_t sr439_cluster_general_information_fr_cluster_range_5_encode(double value)
{
    return (uint16_t)(value / 0.01);
}

double sr439_cluster_general_information_fr_cluster_range_5_decode(uint16_t value)
{
    return ((double)value * 0.01);
}

bool sr439_cluster_general_information_fr_cluster_range_5_is_in_range(uint16_t value)
{
    return (value <= 12000u);
}

uint16_t sr439_cluster_general_information_fr_cluster_velocity_5_encode(double value)
{
    return (uint16_t)((value - -111.11) / 0.025);
}

double sr439_cluster_general_information_fr_cluster_velocity_5_decode(uint16_t value)
{
    return (((double)value * 0.025) + -111.11);
}

bool sr439_cluster_general_information_fr_cluster_velocity_5_is_in_range(uint16_t value)
{
    return (value <= 6666u);
}

uint16_t sr439_cluster_general_information_fr_cluster_azimuth_5_encode(double value)
{
    return (uint16_t)((value - -90.0) / 0.05);
}

double sr439_cluster_general_information_fr_cluster_azimuth_5_decode(uint16_t value)
{
    return (((double)value * 0.05) + -90.0);
}

bool sr439_cluster_general_information_fr_cluster_azimuth_5_is_in_range(uint16_t value)
{
    return (value <= 3600u);
}

uint16_t sr439_cluster_general_information_fr_cluster_elevation_5_encode(double value)
{
    return (uint16_t)((value - -25.0) / 0.05);
}

double sr439_cluster_general_information_fr_cluster_elevation_5_decode(uint16_t value)
{
    return (((double)value * 0.05) + -25.0);
}

bool sr439_cluster_general_information_fr_cluster_elevation_5_is_in_range(uint16_t value)
{
    return (value <= 1000u);
}

uint8_t sr439_cluster_general_information_fr_cluster_dyn_prop_5_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_cluster_general_information_fr_cluster_dyn_prop_5_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_cluster_general_information_fr_cluster_dyn_prop_5_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t sr439_cluster_general_information_fr_cluster_prob_of_exist_5_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_cluster_general_information_fr_cluster_prob_of_exist_5_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_cluster_general_information_fr_cluster_prob_of_exist_5_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t sr439_cluster_general_information_fr_cluster_rcs_5_encode(double value)
{
    return (uint8_t)((value - -30.0) / 0.5);
}

double sr439_cluster_general_information_fr_cluster_rcs_5_decode(uint8_t value)
{
    return (((double)value * 0.5) + -30.0);
}

bool sr439_cluster_general_information_fr_cluster_rcs_5_is_in_range(uint8_t value)
{
    return (value <= 254u);
}

uint16_t sr439_cluster_general_information_fr_cluster_power_5_encode(double value)
{
    return (uint16_t)((value - -200.0) / 0.5);
}

double sr439_cluster_general_information_fr_cluster_power_5_decode(uint16_t value)
{
    return (((double)value * 0.5) + -200.0);
}

bool sr439_cluster_general_information_fr_cluster_power_5_is_in_range(uint16_t value)
{
    return (value <= 510u);
}

uint16_t sr439_cluster_general_information_fr_cluster_snr_5_encode(double value)
{
    return (uint16_t)((value - -10.0) / 0.5);
}

double sr439_cluster_general_information_fr_cluster_snr_5_decode(uint16_t value)
{
    return (((double)value * 0.5) + -10.0);
}

bool sr439_cluster_general_information_fr_cluster_snr_5_is_in_range(uint16_t value)
{
    return (value <= 510u);
}

int sr439_cluster_general_information_fl_pack(
    uint8_t *dst_p,
    const struct sr439_cluster_general_information_fl_t *src_p,
    size_t size)
{
    if (size < 64u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 64);

    dst_p[0] |= pack_left_shift_u8(src_p->cluster_id_1, 0u, 0xffu);
    dst_p[1] |= pack_right_shift_u16(src_p->cluster_range_1, 6u, 0xffu);
    dst_p[2] |= pack_left_shift_u16(src_p->cluster_range_1, 2u, 0xfcu);
    dst_p[2] |= pack_right_shift_u16(src_p->cluster_velocity_1, 11u, 0x03u);
    dst_p[3] |= pack_right_shift_u16(src_p->cluster_velocity_1, 3u, 0xffu);
    dst_p[4] |= pack_left_shift_u16(src_p->cluster_velocity_1, 5u, 0xe0u);
    dst_p[4] |= pack_right_shift_u16(src_p->cluster_azimuth_1, 7u, 0x1fu);
    dst_p[5] |= pack_left_shift_u16(src_p->cluster_azimuth_1, 1u, 0xfeu);
    dst_p[5] |= pack_right_shift_u16(src_p->cluster_elevation_1, 9u, 0x01u);
    dst_p[6] |= pack_right_shift_u16(src_p->cluster_elevation_1, 1u, 0xffu);
    dst_p[7] |= pack_left_shift_u16(src_p->cluster_elevation_1, 7u, 0x80u);
    dst_p[7] |= pack_left_shift_u8(src_p->cluster_dyn_prop_1, 5u, 0x60u);
    dst_p[7] |= pack_left_shift_u8(src_p->cluster_prob_of_exist_1, 2u, 0x1cu);
    dst_p[7] |= pack_right_shift_u8(src_p->cluster_rcs_1, 6u, 0x03u);
    dst_p[8] |= pack_left_shift_u8(src_p->cluster_rcs_1, 2u, 0xfcu);
    dst_p[8] |= pack_right_shift_u16(src_p->cluster_power_1, 7u, 0x03u);
    dst_p[9] |= pack_left_shift_u16(src_p->cluster_power_1, 1u, 0xfeu);
    dst_p[9] |= pack_right_shift_u16(src_p->cluster_snr_1, 8u, 0x01u);
    dst_p[10] |= pack_left_shift_u16(src_p->cluster_snr_1, 0u, 0xffu);
    dst_p[12] |= pack_left_shift_u8(src_p->cluster_id_2, 0u, 0xffu);
    dst_p[13] |= pack_right_shift_u16(src_p->cluster_range_2, 6u, 0xffu);
    dst_p[14] |= pack_left_shift_u16(src_p->cluster_range_2, 2u, 0xfcu);
    dst_p[14] |= pack_right_shift_u16(src_p->cluster_velocity_2, 11u, 0x03u);
    dst_p[15] |= pack_right_shift_u16(src_p->cluster_velocity_2, 3u, 0xffu);
    dst_p[16] |= pack_left_shift_u16(src_p->cluster_velocity_2, 5u, 0xe0u);
    dst_p[16] |= pack_right_shift_u16(src_p->cluster_azimuth_2, 7u, 0x1fu);
    dst_p[17] |= pack_left_shift_u16(src_p->cluster_azimuth_2, 1u, 0xfeu);
    dst_p[17] |= pack_right_shift_u16(src_p->cluster_elevation_2, 9u, 0x01u);
    dst_p[18] |= pack_right_shift_u16(src_p->cluster_elevation_2, 1u, 0xffu);
    dst_p[19] |= pack_left_shift_u16(src_p->cluster_elevation_2, 7u, 0x80u);
    dst_p[19] |= pack_left_shift_u8(src_p->cluster_dyn_prop_2, 5u, 0x60u);
    dst_p[19] |= pack_left_shift_u8(src_p->cluster_prob_of_exist_2, 2u, 0x1cu);
    dst_p[19] |= pack_right_shift_u8(src_p->cluster_rcs_2, 6u, 0x03u);
    dst_p[20] |= pack_left_shift_u8(src_p->cluster_rcs_2, 2u, 0xfcu);
    dst_p[20] |= pack_right_shift_u16(src_p->cluster_power_2, 7u, 0x03u);
    dst_p[21] |= pack_left_shift_u16(src_p->cluster_power_2, 1u, 0xfeu);
    dst_p[21] |= pack_right_shift_u16(src_p->cluster_snr_2, 8u, 0x01u);
    dst_p[22] |= pack_left_shift_u16(src_p->cluster_snr_2, 0u, 0xffu);
    dst_p[24] |= pack_left_shift_u8(src_p->cluster_id_3, 0u, 0xffu);
    dst_p[25] |= pack_right_shift_u16(src_p->cluster_range_3, 6u, 0xffu);
    dst_p[26] |= pack_left_shift_u16(src_p->cluster_range_3, 2u, 0xfcu);
    dst_p[26] |= pack_right_shift_u16(src_p->cluster_velocity_3, 11u, 0x03u);
    dst_p[27] |= pack_right_shift_u16(src_p->cluster_velocity_3, 3u, 0xffu);
    dst_p[28] |= pack_left_shift_u16(src_p->cluster_velocity_3, 5u, 0xe0u);
    dst_p[28] |= pack_right_shift_u16(src_p->cluster_azimuth_3, 7u, 0x1fu);
    dst_p[29] |= pack_left_shift_u16(src_p->cluster_azimuth_3, 1u, 0xfeu);
    dst_p[29] |= pack_right_shift_u16(src_p->cluster_elevation_3, 9u, 0x01u);
    dst_p[30] |= pack_right_shift_u16(src_p->cluster_elevation_3, 1u, 0xffu);
    dst_p[31] |= pack_left_shift_u16(src_p->cluster_elevation_3, 7u, 0x80u);
    dst_p[31] |= pack_left_shift_u8(src_p->cluster_dyn_prop_3, 5u, 0x60u);
    dst_p[31] |= pack_left_shift_u8(src_p->cluster_prob_of_exist_3, 2u, 0x1cu);
    dst_p[31] |= pack_right_shift_u8(src_p->cluster_rcs_3, 6u, 0x03u);
    dst_p[32] |= pack_left_shift_u8(src_p->cluster_rcs_3, 2u, 0xfcu);
    dst_p[32] |= pack_right_shift_u16(src_p->cluster_power_3, 7u, 0x03u);
    dst_p[33] |= pack_left_shift_u16(src_p->cluster_power_3, 1u, 0xfeu);
    dst_p[33] |= pack_right_shift_u16(src_p->cluster_snr_3, 8u, 0x01u);
    dst_p[34] |= pack_left_shift_u16(src_p->cluster_snr_3, 0u, 0xffu);
    dst_p[36] |= pack_left_shift_u8(src_p->cluster_id_4, 0u, 0xffu);
    dst_p[37] |= pack_right_shift_u16(src_p->cluster_range_4, 6u, 0xffu);
    dst_p[38] |= pack_left_shift_u16(src_p->cluster_range_4, 2u, 0xfcu);
    dst_p[38] |= pack_right_shift_u16(src_p->cluster_velocity_4, 11u, 0x03u);
    dst_p[39] |= pack_right_shift_u16(src_p->cluster_velocity_4, 3u, 0xffu);
    dst_p[40] |= pack_left_shift_u16(src_p->cluster_velocity_4, 5u, 0xe0u);
    dst_p[40] |= pack_right_shift_u16(src_p->cluster_azimuth_4, 7u, 0x1fu);
    dst_p[41] |= pack_left_shift_u16(src_p->cluster_azimuth_4, 1u, 0xfeu);
    dst_p[41] |= pack_right_shift_u16(src_p->cluster_elevation_4, 9u, 0x01u);
    dst_p[42] |= pack_right_shift_u16(src_p->cluster_elevation_4, 1u, 0xffu);
    dst_p[43] |= pack_left_shift_u16(src_p->cluster_elevation_4, 7u, 0x80u);
    dst_p[43] |= pack_left_shift_u8(src_p->cluster_dyn_prop_4, 5u, 0x60u);
    dst_p[43] |= pack_left_shift_u8(src_p->cluster_prob_of_exist_4, 2u, 0x1cu);
    dst_p[43] |= pack_right_shift_u8(src_p->cluster_rcs_4, 6u, 0x03u);
    dst_p[44] |= pack_left_shift_u8(src_p->cluster_rcs_4, 2u, 0xfcu);
    dst_p[44] |= pack_right_shift_u16(src_p->cluster_power_4, 7u, 0x03u);
    dst_p[45] |= pack_left_shift_u16(src_p->cluster_power_4, 1u, 0xfeu);
    dst_p[45] |= pack_right_shift_u16(src_p->cluster_snr_4, 8u, 0x01u);
    dst_p[46] |= pack_left_shift_u16(src_p->cluster_snr_4, 0u, 0xffu);
    dst_p[48] |= pack_left_shift_u8(src_p->cluster_id_5, 0u, 0xffu);
    dst_p[49] |= pack_right_shift_u16(src_p->cluster_range_5, 6u, 0xffu);
    dst_p[50] |= pack_left_shift_u16(src_p->cluster_range_5, 2u, 0xfcu);
    dst_p[50] |= pack_right_shift_u16(src_p->cluster_velocity_5, 11u, 0x03u);
    dst_p[51] |= pack_right_shift_u16(src_p->cluster_velocity_5, 3u, 0xffu);
    dst_p[52] |= pack_left_shift_u16(src_p->cluster_velocity_5, 5u, 0xe0u);
    dst_p[52] |= pack_right_shift_u16(src_p->cluster_azimuth_5, 7u, 0x1fu);
    dst_p[53] |= pack_left_shift_u16(src_p->cluster_azimuth_5, 1u, 0xfeu);
    dst_p[53] |= pack_right_shift_u16(src_p->cluster_elevation_5, 9u, 0x01u);
    dst_p[54] |= pack_right_shift_u16(src_p->cluster_elevation_5, 1u, 0xffu);
    dst_p[55] |= pack_left_shift_u16(src_p->cluster_elevation_5, 7u, 0x80u);
    dst_p[55] |= pack_left_shift_u8(src_p->cluster_dyn_prop_5, 5u, 0x60u);
    dst_p[55] |= pack_left_shift_u8(src_p->cluster_prob_of_exist_5, 2u, 0x1cu);
    dst_p[55] |= pack_right_shift_u8(src_p->cluster_rcs_5, 6u, 0x03u);
    dst_p[56] |= pack_left_shift_u8(src_p->cluster_rcs_5, 2u, 0xfcu);
    dst_p[56] |= pack_right_shift_u16(src_p->cluster_power_5, 7u, 0x03u);
    dst_p[57] |= pack_left_shift_u16(src_p->cluster_power_5, 1u, 0xfeu);
    dst_p[57] |= pack_right_shift_u16(src_p->cluster_snr_5, 8u, 0x01u);
    dst_p[58] |= pack_left_shift_u16(src_p->cluster_snr_5, 0u, 0xffu);

    return (64);
}

int sr439_cluster_general_information_fl_unpack(
    struct sr439_cluster_general_information_fl_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 64u) {
        return (-EINVAL);
    }

    dst_p->cluster_id_1 = unpack_right_shift_u8(src_p[0], 0u, 0xffu);
    dst_p->cluster_range_1 = unpack_left_shift_u16(src_p[1], 6u, 0xffu);
    dst_p->cluster_range_1 |= unpack_right_shift_u16(src_p[2], 2u, 0xfcu);
    dst_p->cluster_velocity_1 = unpack_left_shift_u16(src_p[2], 11u, 0x03u);
    dst_p->cluster_velocity_1 |= unpack_left_shift_u16(src_p[3], 3u, 0xffu);
    dst_p->cluster_velocity_1 |= unpack_right_shift_u16(src_p[4], 5u, 0xe0u);
    dst_p->cluster_azimuth_1 = unpack_left_shift_u16(src_p[4], 7u, 0x1fu);
    dst_p->cluster_azimuth_1 |= unpack_right_shift_u16(src_p[5], 1u, 0xfeu);
    dst_p->cluster_elevation_1 = unpack_left_shift_u16(src_p[5], 9u, 0x01u);
    dst_p->cluster_elevation_1 |= unpack_left_shift_u16(src_p[6], 1u, 0xffu);
    dst_p->cluster_elevation_1 |= unpack_right_shift_u16(src_p[7], 7u, 0x80u);
    dst_p->cluster_dyn_prop_1 = unpack_right_shift_u8(src_p[7], 5u, 0x60u);
    dst_p->cluster_prob_of_exist_1 = unpack_right_shift_u8(src_p[7], 2u, 0x1cu);
    dst_p->cluster_rcs_1 = unpack_left_shift_u8(src_p[7], 6u, 0x03u);
    dst_p->cluster_rcs_1 |= unpack_right_shift_u8(src_p[8], 2u, 0xfcu);
    dst_p->cluster_power_1 = unpack_left_shift_u16(src_p[8], 7u, 0x03u);
    dst_p->cluster_power_1 |= unpack_right_shift_u16(src_p[9], 1u, 0xfeu);
    dst_p->cluster_snr_1 = unpack_left_shift_u16(src_p[9], 8u, 0x01u);
    dst_p->cluster_snr_1 |= unpack_right_shift_u16(src_p[10], 0u, 0xffu);
    dst_p->cluster_id_2 = unpack_right_shift_u8(src_p[12], 0u, 0xffu);
    dst_p->cluster_range_2 = unpack_left_shift_u16(src_p[13], 6u, 0xffu);
    dst_p->cluster_range_2 |= unpack_right_shift_u16(src_p[14], 2u, 0xfcu);
    dst_p->cluster_velocity_2 = unpack_left_shift_u16(src_p[14], 11u, 0x03u);
    dst_p->cluster_velocity_2 |= unpack_left_shift_u16(src_p[15], 3u, 0xffu);
    dst_p->cluster_velocity_2 |= unpack_right_shift_u16(src_p[16], 5u, 0xe0u);
    dst_p->cluster_azimuth_2 = unpack_left_shift_u16(src_p[16], 7u, 0x1fu);
    dst_p->cluster_azimuth_2 |= unpack_right_shift_u16(src_p[17], 1u, 0xfeu);
    dst_p->cluster_elevation_2 = unpack_left_shift_u16(src_p[17], 9u, 0x01u);
    dst_p->cluster_elevation_2 |= unpack_left_shift_u16(src_p[18], 1u, 0xffu);
    dst_p->cluster_elevation_2 |= unpack_right_shift_u16(src_p[19], 7u, 0x80u);
    dst_p->cluster_dyn_prop_2 = unpack_right_shift_u8(src_p[19], 5u, 0x60u);
    dst_p->cluster_prob_of_exist_2 = unpack_right_shift_u8(src_p[19], 2u, 0x1cu);
    dst_p->cluster_rcs_2 = unpack_left_shift_u8(src_p[19], 6u, 0x03u);
    dst_p->cluster_rcs_2 |= unpack_right_shift_u8(src_p[20], 2u, 0xfcu);
    dst_p->cluster_power_2 = unpack_left_shift_u16(src_p[20], 7u, 0x03u);
    dst_p->cluster_power_2 |= unpack_right_shift_u16(src_p[21], 1u, 0xfeu);
    dst_p->cluster_snr_2 = unpack_left_shift_u16(src_p[21], 8u, 0x01u);
    dst_p->cluster_snr_2 |= unpack_right_shift_u16(src_p[22], 0u, 0xffu);
    dst_p->cluster_id_3 = unpack_right_shift_u8(src_p[24], 0u, 0xffu);
    dst_p->cluster_range_3 = unpack_left_shift_u16(src_p[25], 6u, 0xffu);
    dst_p->cluster_range_3 |= unpack_right_shift_u16(src_p[26], 2u, 0xfcu);
    dst_p->cluster_velocity_3 = unpack_left_shift_u16(src_p[26], 11u, 0x03u);
    dst_p->cluster_velocity_3 |= unpack_left_shift_u16(src_p[27], 3u, 0xffu);
    dst_p->cluster_velocity_3 |= unpack_right_shift_u16(src_p[28], 5u, 0xe0u);
    dst_p->cluster_azimuth_3 = unpack_left_shift_u16(src_p[28], 7u, 0x1fu);
    dst_p->cluster_azimuth_3 |= unpack_right_shift_u16(src_p[29], 1u, 0xfeu);
    dst_p->cluster_elevation_3 = unpack_left_shift_u16(src_p[29], 9u, 0x01u);
    dst_p->cluster_elevation_3 |= unpack_left_shift_u16(src_p[30], 1u, 0xffu);
    dst_p->cluster_elevation_3 |= unpack_right_shift_u16(src_p[31], 7u, 0x80u);
    dst_p->cluster_dyn_prop_3 = unpack_right_shift_u8(src_p[31], 5u, 0x60u);
    dst_p->cluster_prob_of_exist_3 = unpack_right_shift_u8(src_p[31], 2u, 0x1cu);
    dst_p->cluster_rcs_3 = unpack_left_shift_u8(src_p[31], 6u, 0x03u);
    dst_p->cluster_rcs_3 |= unpack_right_shift_u8(src_p[32], 2u, 0xfcu);
    dst_p->cluster_power_3 = unpack_left_shift_u16(src_p[32], 7u, 0x03u);
    dst_p->cluster_power_3 |= unpack_right_shift_u16(src_p[33], 1u, 0xfeu);
    dst_p->cluster_snr_3 = unpack_left_shift_u16(src_p[33], 8u, 0x01u);
    dst_p->cluster_snr_3 |= unpack_right_shift_u16(src_p[34], 0u, 0xffu);
    dst_p->cluster_id_4 = unpack_right_shift_u8(src_p[36], 0u, 0xffu);
    dst_p->cluster_range_4 = unpack_left_shift_u16(src_p[37], 6u, 0xffu);
    dst_p->cluster_range_4 |= unpack_right_shift_u16(src_p[38], 2u, 0xfcu);
    dst_p->cluster_velocity_4 = unpack_left_shift_u16(src_p[38], 11u, 0x03u);
    dst_p->cluster_velocity_4 |= unpack_left_shift_u16(src_p[39], 3u, 0xffu);
    dst_p->cluster_velocity_4 |= unpack_right_shift_u16(src_p[40], 5u, 0xe0u);
    dst_p->cluster_azimuth_4 = unpack_left_shift_u16(src_p[40], 7u, 0x1fu);
    dst_p->cluster_azimuth_4 |= unpack_right_shift_u16(src_p[41], 1u, 0xfeu);
    dst_p->cluster_elevation_4 = unpack_left_shift_u16(src_p[41], 9u, 0x01u);
    dst_p->cluster_elevation_4 |= unpack_left_shift_u16(src_p[42], 1u, 0xffu);
    dst_p->cluster_elevation_4 |= unpack_right_shift_u16(src_p[43], 7u, 0x80u);
    dst_p->cluster_dyn_prop_4 = unpack_right_shift_u8(src_p[43], 5u, 0x60u);
    dst_p->cluster_prob_of_exist_4 = unpack_right_shift_u8(src_p[43], 2u, 0x1cu);
    dst_p->cluster_rcs_4 = unpack_left_shift_u8(src_p[43], 6u, 0x03u);
    dst_p->cluster_rcs_4 |= unpack_right_shift_u8(src_p[44], 2u, 0xfcu);
    dst_p->cluster_power_4 = unpack_left_shift_u16(src_p[44], 7u, 0x03u);
    dst_p->cluster_power_4 |= unpack_right_shift_u16(src_p[45], 1u, 0xfeu);
    dst_p->cluster_snr_4 = unpack_left_shift_u16(src_p[45], 8u, 0x01u);
    dst_p->cluster_snr_4 |= unpack_right_shift_u16(src_p[46], 0u, 0xffu);
    dst_p->cluster_id_5 = unpack_right_shift_u8(src_p[48], 0u, 0xffu);
    dst_p->cluster_range_5 = unpack_left_shift_u16(src_p[49], 6u, 0xffu);
    dst_p->cluster_range_5 |= unpack_right_shift_u16(src_p[50], 2u, 0xfcu);
    dst_p->cluster_velocity_5 = unpack_left_shift_u16(src_p[50], 11u, 0x03u);
    dst_p->cluster_velocity_5 |= unpack_left_shift_u16(src_p[51], 3u, 0xffu);
    dst_p->cluster_velocity_5 |= unpack_right_shift_u16(src_p[52], 5u, 0xe0u);
    dst_p->cluster_azimuth_5 = unpack_left_shift_u16(src_p[52], 7u, 0x1fu);
    dst_p->cluster_azimuth_5 |= unpack_right_shift_u16(src_p[53], 1u, 0xfeu);
    dst_p->cluster_elevation_5 = unpack_left_shift_u16(src_p[53], 9u, 0x01u);
    dst_p->cluster_elevation_5 |= unpack_left_shift_u16(src_p[54], 1u, 0xffu);
    dst_p->cluster_elevation_5 |= unpack_right_shift_u16(src_p[55], 7u, 0x80u);
    dst_p->cluster_dyn_prop_5 = unpack_right_shift_u8(src_p[55], 5u, 0x60u);
    dst_p->cluster_prob_of_exist_5 = unpack_right_shift_u8(src_p[55], 2u, 0x1cu);
    dst_p->cluster_rcs_5 = unpack_left_shift_u8(src_p[55], 6u, 0x03u);
    dst_p->cluster_rcs_5 |= unpack_right_shift_u8(src_p[56], 2u, 0xfcu);
    dst_p->cluster_power_5 = unpack_left_shift_u16(src_p[56], 7u, 0x03u);
    dst_p->cluster_power_5 |= unpack_right_shift_u16(src_p[57], 1u, 0xfeu);
    dst_p->cluster_snr_5 = unpack_left_shift_u16(src_p[57], 8u, 0x01u);
    dst_p->cluster_snr_5 |= unpack_right_shift_u16(src_p[58], 0u, 0xffu);

    return (0);
}

int sr439_cluster_general_information_fl_init(struct sr439_cluster_general_information_fl_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct sr439_cluster_general_information_fl_t));

    return 0;
}

uint8_t sr439_cluster_general_information_fl_cluster_id_1_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_cluster_general_information_fl_cluster_id_1_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_cluster_general_information_fl_cluster_id_1_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint16_t sr439_cluster_general_information_fl_cluster_range_1_encode(double value)
{
    return (uint16_t)(value / 0.01);
}

double sr439_cluster_general_information_fl_cluster_range_1_decode(uint16_t value)
{
    return ((double)value * 0.01);
}

bool sr439_cluster_general_information_fl_cluster_range_1_is_in_range(uint16_t value)
{
    return (value <= 12000u);
}

uint16_t sr439_cluster_general_information_fl_cluster_velocity_1_encode(double value)
{
    return (uint16_t)((value - -111.11) / 0.025);
}

double sr439_cluster_general_information_fl_cluster_velocity_1_decode(uint16_t value)
{
    return (((double)value * 0.025) + -111.11);
}

bool sr439_cluster_general_information_fl_cluster_velocity_1_is_in_range(uint16_t value)
{
    return (value <= 6666u);
}

uint16_t sr439_cluster_general_information_fl_cluster_azimuth_1_encode(double value)
{
    return (uint16_t)((value - -90.0) / 0.05);
}

double sr439_cluster_general_information_fl_cluster_azimuth_1_decode(uint16_t value)
{
    return (((double)value * 0.05) + -90.0);
}

bool sr439_cluster_general_information_fl_cluster_azimuth_1_is_in_range(uint16_t value)
{
    return (value <= 3600u);
}

uint16_t sr439_cluster_general_information_fl_cluster_elevation_1_encode(double value)
{
    return (uint16_t)((value - -25.0) / 0.05);
}

double sr439_cluster_general_information_fl_cluster_elevation_1_decode(uint16_t value)
{
    return (((double)value * 0.05) + -25.0);
}

bool sr439_cluster_general_information_fl_cluster_elevation_1_is_in_range(uint16_t value)
{
    return (value <= 1000u);
}

uint8_t sr439_cluster_general_information_fl_cluster_dyn_prop_1_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_cluster_general_information_fl_cluster_dyn_prop_1_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_cluster_general_information_fl_cluster_dyn_prop_1_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t sr439_cluster_general_information_fl_cluster_prob_of_exist_1_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_cluster_general_information_fl_cluster_prob_of_exist_1_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_cluster_general_information_fl_cluster_prob_of_exist_1_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t sr439_cluster_general_information_fl_cluster_rcs_1_encode(double value)
{
    return (uint8_t)((value - -30.0) / 0.5);
}

double sr439_cluster_general_information_fl_cluster_rcs_1_decode(uint8_t value)
{
    return (((double)value * 0.5) + -30.0);
}

bool sr439_cluster_general_information_fl_cluster_rcs_1_is_in_range(uint8_t value)
{
    return (value <= 254u);
}

uint16_t sr439_cluster_general_information_fl_cluster_power_1_encode(double value)
{
    return (uint16_t)((value - -200.0) / 0.5);
}

double sr439_cluster_general_information_fl_cluster_power_1_decode(uint16_t value)
{
    return (((double)value * 0.5) + -200.0);
}

bool sr439_cluster_general_information_fl_cluster_power_1_is_in_range(uint16_t value)
{
    return (value <= 510u);
}

uint16_t sr439_cluster_general_information_fl_cluster_snr_1_encode(double value)
{
    return (uint16_t)((value - -10.0) / 0.5);
}

double sr439_cluster_general_information_fl_cluster_snr_1_decode(uint16_t value)
{
    return (((double)value * 0.5) + -10.0);
}

bool sr439_cluster_general_information_fl_cluster_snr_1_is_in_range(uint16_t value)
{
    return (value <= 510u);
}

uint8_t sr439_cluster_general_information_fl_cluster_id_2_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_cluster_general_information_fl_cluster_id_2_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_cluster_general_information_fl_cluster_id_2_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint16_t sr439_cluster_general_information_fl_cluster_range_2_encode(double value)
{
    return (uint16_t)(value / 0.01);
}

double sr439_cluster_general_information_fl_cluster_range_2_decode(uint16_t value)
{
    return ((double)value * 0.01);
}

bool sr439_cluster_general_information_fl_cluster_range_2_is_in_range(uint16_t value)
{
    return (value <= 12000u);
}

uint16_t sr439_cluster_general_information_fl_cluster_velocity_2_encode(double value)
{
    return (uint16_t)((value - -111.11) / 0.025);
}

double sr439_cluster_general_information_fl_cluster_velocity_2_decode(uint16_t value)
{
    return (((double)value * 0.025) + -111.11);
}

bool sr439_cluster_general_information_fl_cluster_velocity_2_is_in_range(uint16_t value)
{
    return (value <= 6666u);
}

uint16_t sr439_cluster_general_information_fl_cluster_azimuth_2_encode(double value)
{
    return (uint16_t)((value - -90.0) / 0.05);
}

double sr439_cluster_general_information_fl_cluster_azimuth_2_decode(uint16_t value)
{
    return (((double)value * 0.05) + -90.0);
}

bool sr439_cluster_general_information_fl_cluster_azimuth_2_is_in_range(uint16_t value)
{
    return (value <= 3600u);
}

uint16_t sr439_cluster_general_information_fl_cluster_elevation_2_encode(double value)
{
    return (uint16_t)((value - -25.0) / 0.05);
}

double sr439_cluster_general_information_fl_cluster_elevation_2_decode(uint16_t value)
{
    return (((double)value * 0.05) + -25.0);
}

bool sr439_cluster_general_information_fl_cluster_elevation_2_is_in_range(uint16_t value)
{
    return (value <= 1000u);
}

uint8_t sr439_cluster_general_information_fl_cluster_dyn_prop_2_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_cluster_general_information_fl_cluster_dyn_prop_2_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_cluster_general_information_fl_cluster_dyn_prop_2_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t sr439_cluster_general_information_fl_cluster_prob_of_exist_2_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_cluster_general_information_fl_cluster_prob_of_exist_2_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_cluster_general_information_fl_cluster_prob_of_exist_2_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t sr439_cluster_general_information_fl_cluster_rcs_2_encode(double value)
{
    return (uint8_t)((value - -30.0) / 0.5);
}

double sr439_cluster_general_information_fl_cluster_rcs_2_decode(uint8_t value)
{
    return (((double)value * 0.5) + -30.0);
}

bool sr439_cluster_general_information_fl_cluster_rcs_2_is_in_range(uint8_t value)
{
    return (value <= 254u);
}

uint16_t sr439_cluster_general_information_fl_cluster_power_2_encode(double value)
{
    return (uint16_t)((value - -200.0) / 0.5);
}

double sr439_cluster_general_information_fl_cluster_power_2_decode(uint16_t value)
{
    return (((double)value * 0.5) + -200.0);
}

bool sr439_cluster_general_information_fl_cluster_power_2_is_in_range(uint16_t value)
{
    return (value <= 510u);
}

uint16_t sr439_cluster_general_information_fl_cluster_snr_2_encode(double value)
{
    return (uint16_t)((value - -10.0) / 0.5);
}

double sr439_cluster_general_information_fl_cluster_snr_2_decode(uint16_t value)
{
    return (((double)value * 0.5) + -10.0);
}

bool sr439_cluster_general_information_fl_cluster_snr_2_is_in_range(uint16_t value)
{
    return (value <= 510u);
}

uint8_t sr439_cluster_general_information_fl_cluster_id_3_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_cluster_general_information_fl_cluster_id_3_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_cluster_general_information_fl_cluster_id_3_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint16_t sr439_cluster_general_information_fl_cluster_range_3_encode(double value)
{
    return (uint16_t)(value / 0.01);
}

double sr439_cluster_general_information_fl_cluster_range_3_decode(uint16_t value)
{
    return ((double)value * 0.01);
}

bool sr439_cluster_general_information_fl_cluster_range_3_is_in_range(uint16_t value)
{
    return (value <= 12000u);
}

uint16_t sr439_cluster_general_information_fl_cluster_velocity_3_encode(double value)
{
    return (uint16_t)((value - -111.11) / 0.025);
}

double sr439_cluster_general_information_fl_cluster_velocity_3_decode(uint16_t value)
{
    return (((double)value * 0.025) + -111.11);
}

bool sr439_cluster_general_information_fl_cluster_velocity_3_is_in_range(uint16_t value)
{
    return (value <= 6666u);
}

uint16_t sr439_cluster_general_information_fl_cluster_azimuth_3_encode(double value)
{
    return (uint16_t)((value - -90.0) / 0.05);
}

double sr439_cluster_general_information_fl_cluster_azimuth_3_decode(uint16_t value)
{
    return (((double)value * 0.05) + -90.0);
}

bool sr439_cluster_general_information_fl_cluster_azimuth_3_is_in_range(uint16_t value)
{
    return (value <= 3600u);
}

uint16_t sr439_cluster_general_information_fl_cluster_elevation_3_encode(double value)
{
    return (uint16_t)((value - -25.0) / 0.05);
}

double sr439_cluster_general_information_fl_cluster_elevation_3_decode(uint16_t value)
{
    return (((double)value * 0.05) + -25.0);
}

bool sr439_cluster_general_information_fl_cluster_elevation_3_is_in_range(uint16_t value)
{
    return (value <= 1000u);
}

uint8_t sr439_cluster_general_information_fl_cluster_dyn_prop_3_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_cluster_general_information_fl_cluster_dyn_prop_3_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_cluster_general_information_fl_cluster_dyn_prop_3_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t sr439_cluster_general_information_fl_cluster_prob_of_exist_3_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_cluster_general_information_fl_cluster_prob_of_exist_3_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_cluster_general_information_fl_cluster_prob_of_exist_3_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t sr439_cluster_general_information_fl_cluster_rcs_3_encode(double value)
{
    return (uint8_t)((value - -30.0) / 0.5);
}

double sr439_cluster_general_information_fl_cluster_rcs_3_decode(uint8_t value)
{
    return (((double)value * 0.5) + -30.0);
}

bool sr439_cluster_general_information_fl_cluster_rcs_3_is_in_range(uint8_t value)
{
    return (value <= 254u);
}

uint16_t sr439_cluster_general_information_fl_cluster_power_3_encode(double value)
{
    return (uint16_t)((value - -200.0) / 0.5);
}

double sr439_cluster_general_information_fl_cluster_power_3_decode(uint16_t value)
{
    return (((double)value * 0.5) + -200.0);
}

bool sr439_cluster_general_information_fl_cluster_power_3_is_in_range(uint16_t value)
{
    return (value <= 510u);
}

uint16_t sr439_cluster_general_information_fl_cluster_snr_3_encode(double value)
{
    return (uint16_t)((value - -10.0) / 0.5);
}

double sr439_cluster_general_information_fl_cluster_snr_3_decode(uint16_t value)
{
    return (((double)value * 0.5) + -10.0);
}

bool sr439_cluster_general_information_fl_cluster_snr_3_is_in_range(uint16_t value)
{
    return (value <= 510u);
}

uint8_t sr439_cluster_general_information_fl_cluster_id_4_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_cluster_general_information_fl_cluster_id_4_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_cluster_general_information_fl_cluster_id_4_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint16_t sr439_cluster_general_information_fl_cluster_range_4_encode(double value)
{
    return (uint16_t)(value / 0.01);
}

double sr439_cluster_general_information_fl_cluster_range_4_decode(uint16_t value)
{
    return ((double)value * 0.01);
}

bool sr439_cluster_general_information_fl_cluster_range_4_is_in_range(uint16_t value)
{
    return (value <= 12000u);
}

uint16_t sr439_cluster_general_information_fl_cluster_velocity_4_encode(double value)
{
    return (uint16_t)((value - -111.11) / 0.025);
}

double sr439_cluster_general_information_fl_cluster_velocity_4_decode(uint16_t value)
{
    return (((double)value * 0.025) + -111.11);
}

bool sr439_cluster_general_information_fl_cluster_velocity_4_is_in_range(uint16_t value)
{
    return (value <= 6666u);
}

uint16_t sr439_cluster_general_information_fl_cluster_azimuth_4_encode(double value)
{
    return (uint16_t)((value - -90.0) / 0.05);
}

double sr439_cluster_general_information_fl_cluster_azimuth_4_decode(uint16_t value)
{
    return (((double)value * 0.05) + -90.0);
}

bool sr439_cluster_general_information_fl_cluster_azimuth_4_is_in_range(uint16_t value)
{
    return (value <= 3600u);
}

uint16_t sr439_cluster_general_information_fl_cluster_elevation_4_encode(double value)
{
    return (uint16_t)((value - -25.0) / 0.05);
}

double sr439_cluster_general_information_fl_cluster_elevation_4_decode(uint16_t value)
{
    return (((double)value * 0.05) + -25.0);
}

bool sr439_cluster_general_information_fl_cluster_elevation_4_is_in_range(uint16_t value)
{
    return (value <= 1000u);
}

uint8_t sr439_cluster_general_information_fl_cluster_dyn_prop_4_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_cluster_general_information_fl_cluster_dyn_prop_4_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_cluster_general_information_fl_cluster_dyn_prop_4_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t sr439_cluster_general_information_fl_cluster_prob_of_exist_4_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_cluster_general_information_fl_cluster_prob_of_exist_4_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_cluster_general_information_fl_cluster_prob_of_exist_4_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t sr439_cluster_general_information_fl_cluster_rcs_4_encode(double value)
{
    return (uint8_t)((value - -30.0) / 0.5);
}

double sr439_cluster_general_information_fl_cluster_rcs_4_decode(uint8_t value)
{
    return (((double)value * 0.5) + -30.0);
}

bool sr439_cluster_general_information_fl_cluster_rcs_4_is_in_range(uint8_t value)
{
    return (value <= 254u);
}

uint16_t sr439_cluster_general_information_fl_cluster_power_4_encode(double value)
{
    return (uint16_t)((value - -200.0) / 0.5);
}

double sr439_cluster_general_information_fl_cluster_power_4_decode(uint16_t value)
{
    return (((double)value * 0.5) + -200.0);
}

bool sr439_cluster_general_information_fl_cluster_power_4_is_in_range(uint16_t value)
{
    return (value <= 510u);
}

uint16_t sr439_cluster_general_information_fl_cluster_snr_4_encode(double value)
{
    return (uint16_t)((value - -10.0) / 0.5);
}

double sr439_cluster_general_information_fl_cluster_snr_4_decode(uint16_t value)
{
    return (((double)value * 0.5) + -10.0);
}

bool sr439_cluster_general_information_fl_cluster_snr_4_is_in_range(uint16_t value)
{
    return (value <= 510u);
}

uint8_t sr439_cluster_general_information_fl_cluster_id_5_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_cluster_general_information_fl_cluster_id_5_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_cluster_general_information_fl_cluster_id_5_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint16_t sr439_cluster_general_information_fl_cluster_range_5_encode(double value)
{
    return (uint16_t)(value / 0.01);
}

double sr439_cluster_general_information_fl_cluster_range_5_decode(uint16_t value)
{
    return ((double)value * 0.01);
}

bool sr439_cluster_general_information_fl_cluster_range_5_is_in_range(uint16_t value)
{
    return (value <= 12000u);
}

uint16_t sr439_cluster_general_information_fl_cluster_velocity_5_encode(double value)
{
    return (uint16_t)((value - -111.11) / 0.025);
}

double sr439_cluster_general_information_fl_cluster_velocity_5_decode(uint16_t value)
{
    return (((double)value * 0.025) + -111.11);
}

bool sr439_cluster_general_information_fl_cluster_velocity_5_is_in_range(uint16_t value)
{
    return (value <= 6666u);
}

uint16_t sr439_cluster_general_information_fl_cluster_azimuth_5_encode(double value)
{
    return (uint16_t)((value - -90.0) / 0.05);
}

double sr439_cluster_general_information_fl_cluster_azimuth_5_decode(uint16_t value)
{
    return (((double)value * 0.05) + -90.0);
}

bool sr439_cluster_general_information_fl_cluster_azimuth_5_is_in_range(uint16_t value)
{
    return (value <= 3600u);
}

uint16_t sr439_cluster_general_information_fl_cluster_elevation_5_encode(double value)
{
    return (uint16_t)((value - -25.0) / 0.05);
}

double sr439_cluster_general_information_fl_cluster_elevation_5_decode(uint16_t value)
{
    return (((double)value * 0.05) + -25.0);
}

bool sr439_cluster_general_information_fl_cluster_elevation_5_is_in_range(uint16_t value)
{
    return (value <= 1000u);
}

uint8_t sr439_cluster_general_information_fl_cluster_dyn_prop_5_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_cluster_general_information_fl_cluster_dyn_prop_5_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_cluster_general_information_fl_cluster_dyn_prop_5_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t sr439_cluster_general_information_fl_cluster_prob_of_exist_5_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_cluster_general_information_fl_cluster_prob_of_exist_5_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_cluster_general_information_fl_cluster_prob_of_exist_5_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t sr439_cluster_general_information_fl_cluster_rcs_5_encode(double value)
{
    return (uint8_t)((value - -30.0) / 0.5);
}

double sr439_cluster_general_information_fl_cluster_rcs_5_decode(uint8_t value)
{
    return (((double)value * 0.5) + -30.0);
}

bool sr439_cluster_general_information_fl_cluster_rcs_5_is_in_range(uint8_t value)
{
    return (value <= 254u);
}

uint16_t sr439_cluster_general_information_fl_cluster_power_5_encode(double value)
{
    return (uint16_t)((value - -200.0) / 0.5);
}

double sr439_cluster_general_information_fl_cluster_power_5_decode(uint16_t value)
{
    return (((double)value * 0.5) + -200.0);
}

bool sr439_cluster_general_information_fl_cluster_power_5_is_in_range(uint16_t value)
{
    return (value <= 510u);
}

uint16_t sr439_cluster_general_information_fl_cluster_snr_5_encode(double value)
{
    return (uint16_t)((value - -10.0) / 0.5);
}

double sr439_cluster_general_information_fl_cluster_snr_5_decode(uint16_t value)
{
    return (((double)value * 0.5) + -10.0);
}

bool sr439_cluster_general_information_fl_cluster_snr_5_is_in_range(uint16_t value)
{
    return (value <= 510u);
}

int sr439_obj_collision_info_rl_pack(
    uint8_t *dst_p,
    const struct sr439_obj_collision_info_rl_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[0] |= pack_left_shift_u8(src_p->obj_id, 0u, 0xffu);
    dst_p[1] |= pack_left_shift_u8(src_p->obj_ref_point, 4u, 0xf0u);
    dst_p[1] |= pack_left_shift_u8(src_p->obj_track_state, 1u, 0x0eu);
    dst_p[1] |= pack_right_shift_u8(src_p->obj_corner_rel_wid, 4u, 0x01u);
    dst_p[2] |= pack_left_shift_u8(src_p->obj_corner_rel_wid, 4u, 0xf0u);
    dst_p[2] |= pack_right_shift_u8(src_p->obj_corner_rel_len, 2u, 0x0fu);
    dst_p[3] |= pack_left_shift_u8(src_p->obj_corner_rel_len, 6u, 0xc0u);
    dst_p[3] |= pack_right_shift_u16(src_p->obj_yaw_rate, 4u, 0x3fu);
    dst_p[4] |= pack_left_shift_u16(src_p->obj_yaw_rate, 4u, 0xf0u);

    return (8);
}

int sr439_obj_collision_info_rl_unpack(
    struct sr439_obj_collision_info_rl_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->obj_id = unpack_right_shift_u8(src_p[0], 0u, 0xffu);
    dst_p->obj_ref_point = unpack_right_shift_u8(src_p[1], 4u, 0xf0u);
    dst_p->obj_track_state = unpack_right_shift_u8(src_p[1], 1u, 0x0eu);
    dst_p->obj_corner_rel_wid = unpack_left_shift_u8(src_p[1], 4u, 0x01u);
    dst_p->obj_corner_rel_wid |= unpack_right_shift_u8(src_p[2], 4u, 0xf0u);
    dst_p->obj_corner_rel_len = unpack_left_shift_u8(src_p[2], 2u, 0x0fu);
    dst_p->obj_corner_rel_len |= unpack_right_shift_u8(src_p[3], 6u, 0xc0u);
    dst_p->obj_yaw_rate = unpack_left_shift_u16(src_p[3], 4u, 0x3fu);
    dst_p->obj_yaw_rate |= unpack_right_shift_u16(src_p[4], 4u, 0xf0u);

    return (0);
}

int sr439_obj_collision_info_rl_init(struct sr439_obj_collision_info_rl_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct sr439_obj_collision_info_rl_t));

    return 0;
}

uint8_t sr439_obj_collision_info_rl_obj_id_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_collision_info_rl_obj_id_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_collision_info_rl_obj_id_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint8_t sr439_obj_collision_info_rl_obj_ref_point_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_collision_info_rl_obj_ref_point_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_collision_info_rl_obj_ref_point_is_in_range(uint8_t value)
{
    return (value <= 9u);
}

uint8_t sr439_obj_collision_info_rl_obj_track_state_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_collision_info_rl_obj_track_state_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_collision_info_rl_obj_track_state_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t sr439_obj_collision_info_rl_obj_corner_rel_wid_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_collision_info_rl_obj_corner_rel_wid_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_collision_info_rl_obj_corner_rel_wid_is_in_range(uint8_t value)
{
    return (value <= 31u);
}

uint8_t sr439_obj_collision_info_rl_obj_corner_rel_len_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_collision_info_rl_obj_corner_rel_len_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_collision_info_rl_obj_corner_rel_len_is_in_range(uint8_t value)
{
    return (value <= 63u);
}

uint16_t sr439_obj_collision_info_rl_obj_yaw_rate_encode(double value)
{
    return (uint16_t)((value - -3.14) / 0.01);
}

double sr439_obj_collision_info_rl_obj_yaw_rate_decode(uint16_t value)
{
    return (((double)value * 0.01) + -3.14);
}

bool sr439_obj_collision_info_rl_obj_yaw_rate_is_in_range(uint16_t value)
{
    return (value <= 628u);
}

int sr439_obj_extended_info_rl_pack(
    uint8_t *dst_p,
    const struct sr439_obj_extended_info_rl_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[0] |= pack_left_shift_u8(src_p->obj_id, 0u, 0xffu);
    dst_p[1] |= pack_right_shift_u16(src_p->obj_arel_lon, 3u, 0xffu);
    dst_p[2] |= pack_left_shift_u16(src_p->obj_arel_lon, 5u, 0xe0u);
    dst_p[2] |= pack_right_shift_u16(src_p->obj_arel_lat, 6u, 0x1fu);
    dst_p[3] |= pack_left_shift_u16(src_p->obj_arel_lat, 2u, 0xfcu);
    dst_p[3] |= pack_right_shift_u8(src_p->obj_class, 1u, 0x03u);
    dst_p[4] |= pack_left_shift_u8(src_p->obj_class, 7u, 0x80u);
    dst_p[4] |= pack_right_shift_u16(src_p->obj_orien_angle, 3u, 0x7fu);
    dst_p[5] |= pack_left_shift_u16(src_p->obj_orien_angle, 5u, 0xe0u);
    dst_p[5] |= pack_left_shift_u8(src_p->obj_width, 0u, 0x1fu);
    dst_p[6] |= pack_left_shift_u8(src_p->obj_length, 0u, 0xffu);
    dst_p[7] |= pack_left_shift_u8(src_p->obj_height, 3u, 0xf8u);

    return (8);
}

int sr439_obj_extended_info_rl_unpack(
    struct sr439_obj_extended_info_rl_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->obj_id = unpack_right_shift_u8(src_p[0], 0u, 0xffu);
    dst_p->obj_arel_lon = unpack_left_shift_u16(src_p[1], 3u, 0xffu);
    dst_p->obj_arel_lon |= unpack_right_shift_u16(src_p[2], 5u, 0xe0u);
    dst_p->obj_arel_lat = unpack_left_shift_u16(src_p[2], 6u, 0x1fu);
    dst_p->obj_arel_lat |= unpack_right_shift_u16(src_p[3], 2u, 0xfcu);
    dst_p->obj_class = unpack_left_shift_u8(src_p[3], 1u, 0x03u);
    dst_p->obj_class |= unpack_right_shift_u8(src_p[4], 7u, 0x80u);
    dst_p->obj_orien_angle = unpack_left_shift_u16(src_p[4], 3u, 0x7fu);
    dst_p->obj_orien_angle |= unpack_right_shift_u16(src_p[5], 5u, 0xe0u);
    dst_p->obj_width = unpack_right_shift_u8(src_p[5], 0u, 0x1fu);
    dst_p->obj_length = unpack_right_shift_u8(src_p[6], 0u, 0xffu);
    dst_p->obj_height = unpack_right_shift_u8(src_p[7], 3u, 0xf8u);

    return (0);
}

int sr439_obj_extended_info_rl_init(struct sr439_obj_extended_info_rl_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct sr439_obj_extended_info_rl_t));

    return 0;
}

uint8_t sr439_obj_extended_info_rl_obj_id_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_extended_info_rl_obj_id_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_extended_info_rl_obj_id_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint16_t sr439_obj_extended_info_rl_obj_arel_lon_encode(double value)
{
    return (uint16_t)((value - -40.0) / 0.04);
}

double sr439_obj_extended_info_rl_obj_arel_lon_decode(uint16_t value)
{
    return (((double)value * 0.04) + -40.0);
}

bool sr439_obj_extended_info_rl_obj_arel_lon_is_in_range(uint16_t value)
{
    return (value <= 2000u);
}

uint16_t sr439_obj_extended_info_rl_obj_arel_lat_encode(double value)
{
    return (uint16_t)((value - -40.0) / 0.04);
}

double sr439_obj_extended_info_rl_obj_arel_lat_decode(uint16_t value)
{
    return (((double)value * 0.04) + -40.0);
}

bool sr439_obj_extended_info_rl_obj_arel_lat_is_in_range(uint16_t value)
{
    return (value <= 2000u);
}

uint8_t sr439_obj_extended_info_rl_obj_class_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_extended_info_rl_obj_class_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_extended_info_rl_obj_class_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint16_t sr439_obj_extended_info_rl_obj_orien_angle_encode(double value)
{
    return (uint16_t)((value - -180.0) / 0.4);
}

double sr439_obj_extended_info_rl_obj_orien_angle_decode(uint16_t value)
{
    return (((double)value * 0.4) + -180.0);
}

bool sr439_obj_extended_info_rl_obj_orien_angle_is_in_range(uint16_t value)
{
    return (value <= 900u);
}

uint8_t sr439_obj_extended_info_rl_obj_width_encode(double value)
{
    return (uint8_t)(value / 0.1);
}

double sr439_obj_extended_info_rl_obj_width_decode(uint8_t value)
{
    return ((double)value * 0.1);
}

bool sr439_obj_extended_info_rl_obj_width_is_in_range(uint8_t value)
{
    return (value <= 31u);
}

uint8_t sr439_obj_extended_info_rl_obj_length_encode(double value)
{
    return (uint8_t)(value / 0.1);
}

double sr439_obj_extended_info_rl_obj_length_decode(uint8_t value)
{
    return ((double)value * 0.1);
}

bool sr439_obj_extended_info_rl_obj_length_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint8_t sr439_obj_extended_info_rl_obj_height_encode(double value)
{
    return (uint8_t)((value - -10.0) / 0.5);
}

double sr439_obj_extended_info_rl_obj_height_decode(uint8_t value)
{
    return (((double)value * 0.5) + -10.0);
}

bool sr439_obj_extended_info_rl_obj_height_is_in_range(uint8_t value)
{
    return (value <= 63u);
}

int sr439_obj_quality_info_rl_pack(
    uint8_t *dst_p,
    const struct sr439_obj_quality_info_rl_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[0] |= pack_left_shift_u8(src_p->obj_id, 0u, 0xffu);
    dst_p[1] |= pack_left_shift_u8(src_p->obj_dist_lon_rms, 3u, 0xf8u);
    dst_p[1] |= pack_right_shift_u8(src_p->obj_dist_lat_rms, 2u, 0x07u);
    dst_p[2] |= pack_left_shift_u8(src_p->obj_dist_lat_rms, 6u, 0xc0u);
    dst_p[2] |= pack_left_shift_u8(src_p->obj_vel_lon_rms, 1u, 0x3eu);
    dst_p[2] |= pack_right_shift_u8(src_p->obj_vel_lat_rms, 4u, 0x01u);
    dst_p[3] |= pack_left_shift_u8(src_p->obj_vel_lat_rms, 4u, 0xf0u);
    dst_p[3] |= pack_right_shift_u8(src_p->obj_acc_lon_rms, 1u, 0x0fu);
    dst_p[4] |= pack_left_shift_u8(src_p->obj_acc_lon_rms, 7u, 0x80u);
    dst_p[4] |= pack_left_shift_u8(src_p->obj_acc_lat_rms, 2u, 0x7cu);
    dst_p[4] |= pack_left_shift_u8(src_p->obj_cipv, 1u, 0x02u);
    dst_p[6] |= pack_left_shift_u8(src_p->obj_prob_of_class, 0u, 0x07u);
    dst_p[7] |= pack_left_shift_u8(src_p->obj_prob_of_exist, 5u, 0xe0u);
    dst_p[7] |= pack_left_shift_u8(src_p->obj_meas_state, 2u, 0x1cu);

    return (8);
}

int sr439_obj_quality_info_rl_unpack(
    struct sr439_obj_quality_info_rl_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->obj_id = unpack_right_shift_u8(src_p[0], 0u, 0xffu);
    dst_p->obj_dist_lon_rms = unpack_right_shift_u8(src_p[1], 3u, 0xf8u);
    dst_p->obj_dist_lat_rms = unpack_left_shift_u8(src_p[1], 2u, 0x07u);
    dst_p->obj_dist_lat_rms |= unpack_right_shift_u8(src_p[2], 6u, 0xc0u);
    dst_p->obj_vel_lon_rms = unpack_right_shift_u8(src_p[2], 1u, 0x3eu);
    dst_p->obj_vel_lat_rms = unpack_left_shift_u8(src_p[2], 4u, 0x01u);
    dst_p->obj_vel_lat_rms |= unpack_right_shift_u8(src_p[3], 4u, 0xf0u);
    dst_p->obj_acc_lon_rms = unpack_left_shift_u8(src_p[3], 1u, 0x0fu);
    dst_p->obj_acc_lon_rms |= unpack_right_shift_u8(src_p[4], 7u, 0x80u);
    dst_p->obj_acc_lat_rms = unpack_right_shift_u8(src_p[4], 2u, 0x7cu);
    dst_p->obj_cipv = unpack_right_shift_u8(src_p[4], 1u, 0x02u);
    dst_p->obj_prob_of_class = unpack_right_shift_u8(src_p[6], 0u, 0x07u);
    dst_p->obj_prob_of_exist = unpack_right_shift_u8(src_p[7], 5u, 0xe0u);
    dst_p->obj_meas_state = unpack_right_shift_u8(src_p[7], 2u, 0x1cu);

    return (0);
}

int sr439_obj_quality_info_rl_init(struct sr439_obj_quality_info_rl_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct sr439_obj_quality_info_rl_t));

    return 0;
}

uint8_t sr439_obj_quality_info_rl_obj_id_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_quality_info_rl_obj_id_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_quality_info_rl_obj_id_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint8_t sr439_obj_quality_info_rl_obj_dist_lon_rms_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_quality_info_rl_obj_dist_lon_rms_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_quality_info_rl_obj_dist_lon_rms_is_in_range(uint8_t value)
{
    return (value <= 31u);
}

uint8_t sr439_obj_quality_info_rl_obj_dist_lat_rms_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_quality_info_rl_obj_dist_lat_rms_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_quality_info_rl_obj_dist_lat_rms_is_in_range(uint8_t value)
{
    return (value <= 31u);
}

uint8_t sr439_obj_quality_info_rl_obj_vel_lon_rms_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_quality_info_rl_obj_vel_lon_rms_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_quality_info_rl_obj_vel_lon_rms_is_in_range(uint8_t value)
{
    return (value <= 31u);
}

uint8_t sr439_obj_quality_info_rl_obj_vel_lat_rms_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_quality_info_rl_obj_vel_lat_rms_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_quality_info_rl_obj_vel_lat_rms_is_in_range(uint8_t value)
{
    return (value <= 31u);
}

uint8_t sr439_obj_quality_info_rl_obj_acc_lon_rms_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_quality_info_rl_obj_acc_lon_rms_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_quality_info_rl_obj_acc_lon_rms_is_in_range(uint8_t value)
{
    return (value <= 31u);
}

uint8_t sr439_obj_quality_info_rl_obj_acc_lat_rms_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_quality_info_rl_obj_acc_lat_rms_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_quality_info_rl_obj_acc_lat_rms_is_in_range(uint8_t value)
{
    return (value <= 31u);
}

uint8_t sr439_obj_quality_info_rl_obj_cipv_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_quality_info_rl_obj_cipv_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_quality_info_rl_obj_cipv_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_obj_quality_info_rl_obj_prob_of_class_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_quality_info_rl_obj_prob_of_class_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_quality_info_rl_obj_prob_of_class_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t sr439_obj_quality_info_rl_obj_prob_of_exist_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_quality_info_rl_obj_prob_of_exist_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_quality_info_rl_obj_prob_of_exist_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t sr439_obj_quality_info_rl_obj_meas_state_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_quality_info_rl_obj_meas_state_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_quality_info_rl_obj_meas_state_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

int sr439_radar_rear_adas_pack(
    uint8_t *dst_p,
    const struct sr439_radar_rear_adas_t *src_p,
    size_t size)
{
    uint16_t adas_time_diff;

    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[0] |= pack_left_shift_u8(src_p->adas_bsd_l_flg, 7u, 0x80u);
    dst_p[0] |= pack_left_shift_u8(src_p->adas_bsd_r_flg, 6u, 0x40u);
    dst_p[0] |= pack_left_shift_u8(src_p->adas_dow_l_flg, 5u, 0x20u);
    dst_p[0] |= pack_left_shift_u8(src_p->adas_dow_r_flg, 4u, 0x10u);
    dst_p[0] |= pack_left_shift_u8(src_p->adas_lca_l_flg, 3u, 0x08u);
    dst_p[0] |= pack_left_shift_u8(src_p->adas_lca_r_flg, 2u, 0x04u);
    dst_p[0] |= pack_left_shift_u8(src_p->adas_rcta_l_flg, 1u, 0x02u);
    dst_p[0] |= pack_left_shift_u8(src_p->adas_rcta_r_flg, 0u, 0x01u);
    dst_p[1] |= pack_left_shift_u8(src_p->adas_rctb_l_flg, 7u, 0x80u);
    dst_p[1] |= pack_left_shift_u8(src_p->adas_rctb_r_flg, 6u, 0x40u);
    dst_p[1] |= pack_left_shift_u8(src_p->adas_fcta_l_flg, 5u, 0x20u);
    dst_p[1] |= pack_left_shift_u8(src_p->adas_fcta_r_flg, 4u, 0x10u);
    dst_p[1] |= pack_left_shift_u8(src_p->adas_fctb_l_flg, 3u, 0x08u);
    dst_p[1] |= pack_left_shift_u8(src_p->adas_fctb_r_flg, 2u, 0x04u);
    dst_p[1] |= pack_left_shift_u8(src_p->adas_fcw_flg, 1u, 0x02u);
    dst_p[1] |= pack_left_shift_u8(src_p->adas_rcw_flg, 0u, 0x01u);
    dst_p[2] |= pack_left_shift_u8(src_p->adas_bsd_l_w, 6u, 0xc0u);
    dst_p[2] |= pack_left_shift_u8(src_p->adas_bsd_r_w, 4u, 0x30u);
    dst_p[2] |= pack_left_shift_u8(src_p->adas_lca_l_w, 2u, 0x0cu);
    dst_p[2] |= pack_left_shift_u8(src_p->adas_lca_r_w, 0u, 0x03u);
    dst_p[3] |= pack_left_shift_u8(src_p->adas_dow_l_w, 6u, 0xc0u);
    dst_p[3] |= pack_left_shift_u8(src_p->adas_dow_r_w, 4u, 0x30u);
    dst_p[3] |= pack_left_shift_u8(src_p->adas_rcta_l_w, 2u, 0x0cu);
    dst_p[3] |= pack_left_shift_u8(src_p->adas_rcta_r_w, 0u, 0x03u);
    dst_p[4] |= pack_left_shift_u8(src_p->adas_rctb_l_w, 6u, 0xc0u);
    dst_p[4] |= pack_left_shift_u8(src_p->adas_rctb_r_w, 4u, 0x30u);
    dst_p[4] |= pack_left_shift_u8(src_p->adas_fcta_l_w, 2u, 0x0cu);
    dst_p[4] |= pack_left_shift_u8(src_p->adas_fcta_r_w, 0u, 0x03u);
    dst_p[5] |= pack_left_shift_u8(src_p->adas_fctb_l_w, 6u, 0xc0u);
    dst_p[5] |= pack_left_shift_u8(src_p->adas_fctb_r_w, 4u, 0x30u);
    dst_p[5] |= pack_left_shift_u8(src_p->adas_fcw_w, 2u, 0x0cu);
    dst_p[5] |= pack_left_shift_u8(src_p->adas_rcw_w, 0u, 0x03u);
    adas_time_diff = (uint16_t)src_p->adas_time_diff;
    dst_p[6] |= pack_right_shift_u16(adas_time_diff, 8u, 0xffu);
    dst_p[7] |= pack_left_shift_u16(adas_time_diff, 0u, 0xffu);

    return (8);
}

int sr439_radar_rear_adas_unpack(
    struct sr439_radar_rear_adas_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    uint16_t adas_time_diff;

    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->adas_bsd_l_flg = unpack_right_shift_u8(src_p[0], 7u, 0x80u);
    dst_p->adas_bsd_r_flg = unpack_right_shift_u8(src_p[0], 6u, 0x40u);
    dst_p->adas_dow_l_flg = unpack_right_shift_u8(src_p[0], 5u, 0x20u);
    dst_p->adas_dow_r_flg = unpack_right_shift_u8(src_p[0], 4u, 0x10u);
    dst_p->adas_lca_l_flg = unpack_right_shift_u8(src_p[0], 3u, 0x08u);
    dst_p->adas_lca_r_flg = unpack_right_shift_u8(src_p[0], 2u, 0x04u);
    dst_p->adas_rcta_l_flg = unpack_right_shift_u8(src_p[0], 1u, 0x02u);
    dst_p->adas_rcta_r_flg = unpack_right_shift_u8(src_p[0], 0u, 0x01u);
    dst_p->adas_rctb_l_flg = unpack_right_shift_u8(src_p[1], 7u, 0x80u);
    dst_p->adas_rctb_r_flg = unpack_right_shift_u8(src_p[1], 6u, 0x40u);
    dst_p->adas_fcta_l_flg = unpack_right_shift_u8(src_p[1], 5u, 0x20u);
    dst_p->adas_fcta_r_flg = unpack_right_shift_u8(src_p[1], 4u, 0x10u);
    dst_p->adas_fctb_l_flg = unpack_right_shift_u8(src_p[1], 3u, 0x08u);
    dst_p->adas_fctb_r_flg = unpack_right_shift_u8(src_p[1], 2u, 0x04u);
    dst_p->adas_fcw_flg = unpack_right_shift_u8(src_p[1], 1u, 0x02u);
    dst_p->adas_rcw_flg = unpack_right_shift_u8(src_p[1], 0u, 0x01u);
    dst_p->adas_bsd_l_w = unpack_right_shift_u8(src_p[2], 6u, 0xc0u);
    dst_p->adas_bsd_r_w = unpack_right_shift_u8(src_p[2], 4u, 0x30u);
    dst_p->adas_lca_l_w = unpack_right_shift_u8(src_p[2], 2u, 0x0cu);
    dst_p->adas_lca_r_w = unpack_right_shift_u8(src_p[2], 0u, 0x03u);
    dst_p->adas_dow_l_w = unpack_right_shift_u8(src_p[3], 6u, 0xc0u);
    dst_p->adas_dow_r_w = unpack_right_shift_u8(src_p[3], 4u, 0x30u);
    dst_p->adas_rcta_l_w = unpack_right_shift_u8(src_p[3], 2u, 0x0cu);
    dst_p->adas_rcta_r_w = unpack_right_shift_u8(src_p[3], 0u, 0x03u);
    dst_p->adas_rctb_l_w = unpack_right_shift_u8(src_p[4], 6u, 0xc0u);
    dst_p->adas_rctb_r_w = unpack_right_shift_u8(src_p[4], 4u, 0x30u);
    dst_p->adas_fcta_l_w = unpack_right_shift_u8(src_p[4], 2u, 0x0cu);
    dst_p->adas_fcta_r_w = unpack_right_shift_u8(src_p[4], 0u, 0x03u);
    dst_p->adas_fctb_l_w = unpack_right_shift_u8(src_p[5], 6u, 0xc0u);
    dst_p->adas_fctb_r_w = unpack_right_shift_u8(src_p[5], 4u, 0x30u);
    dst_p->adas_fcw_w = unpack_right_shift_u8(src_p[5], 2u, 0x0cu);
    dst_p->adas_rcw_w = unpack_right_shift_u8(src_p[5], 0u, 0x03u);
    adas_time_diff = unpack_left_shift_u16(src_p[6], 8u, 0xffu);
    adas_time_diff |= unpack_right_shift_u16(src_p[7], 0u, 0xffu);
    dst_p->adas_time_diff = (int16_t)adas_time_diff;

    return (0);
}

int sr439_radar_rear_adas_init(struct sr439_radar_rear_adas_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct sr439_radar_rear_adas_t));

    return 0;
}

uint8_t sr439_radar_rear_adas_adas_bsd_l_flg_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_radar_rear_adas_adas_bsd_l_flg_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_radar_rear_adas_adas_bsd_l_flg_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_radar_rear_adas_adas_bsd_r_flg_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_radar_rear_adas_adas_bsd_r_flg_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_radar_rear_adas_adas_bsd_r_flg_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_radar_rear_adas_adas_dow_l_flg_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_radar_rear_adas_adas_dow_l_flg_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_radar_rear_adas_adas_dow_l_flg_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_radar_rear_adas_adas_dow_r_flg_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_radar_rear_adas_adas_dow_r_flg_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_radar_rear_adas_adas_dow_r_flg_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_radar_rear_adas_adas_lca_l_flg_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_radar_rear_adas_adas_lca_l_flg_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_radar_rear_adas_adas_lca_l_flg_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_radar_rear_adas_adas_lca_r_flg_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_radar_rear_adas_adas_lca_r_flg_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_radar_rear_adas_adas_lca_r_flg_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_radar_rear_adas_adas_rcta_l_flg_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_radar_rear_adas_adas_rcta_l_flg_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_radar_rear_adas_adas_rcta_l_flg_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_radar_rear_adas_adas_rcta_r_flg_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_radar_rear_adas_adas_rcta_r_flg_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_radar_rear_adas_adas_rcta_r_flg_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_radar_rear_adas_adas_rctb_l_flg_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_radar_rear_adas_adas_rctb_l_flg_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_radar_rear_adas_adas_rctb_l_flg_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_radar_rear_adas_adas_rctb_r_flg_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_radar_rear_adas_adas_rctb_r_flg_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_radar_rear_adas_adas_rctb_r_flg_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_radar_rear_adas_adas_fcta_l_flg_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_radar_rear_adas_adas_fcta_l_flg_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_radar_rear_adas_adas_fcta_l_flg_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_radar_rear_adas_adas_fcta_r_flg_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_radar_rear_adas_adas_fcta_r_flg_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_radar_rear_adas_adas_fcta_r_flg_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_radar_rear_adas_adas_fctb_l_flg_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_radar_rear_adas_adas_fctb_l_flg_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_radar_rear_adas_adas_fctb_l_flg_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_radar_rear_adas_adas_fctb_r_flg_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_radar_rear_adas_adas_fctb_r_flg_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_radar_rear_adas_adas_fctb_r_flg_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_radar_rear_adas_adas_fcw_flg_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_radar_rear_adas_adas_fcw_flg_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_radar_rear_adas_adas_fcw_flg_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_radar_rear_adas_adas_rcw_flg_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_radar_rear_adas_adas_rcw_flg_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_radar_rear_adas_adas_rcw_flg_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t sr439_radar_rear_adas_adas_bsd_l_w_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_radar_rear_adas_adas_bsd_l_w_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_radar_rear_adas_adas_bsd_l_w_is_in_range(uint8_t value)
{
    return (value <= 2u);
}

uint8_t sr439_radar_rear_adas_adas_bsd_r_w_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_radar_rear_adas_adas_bsd_r_w_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_radar_rear_adas_adas_bsd_r_w_is_in_range(uint8_t value)
{
    return (value <= 2u);
}

uint8_t sr439_radar_rear_adas_adas_lca_l_w_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_radar_rear_adas_adas_lca_l_w_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_radar_rear_adas_adas_lca_l_w_is_in_range(uint8_t value)
{
    return (value <= 2u);
}

uint8_t sr439_radar_rear_adas_adas_lca_r_w_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_radar_rear_adas_adas_lca_r_w_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_radar_rear_adas_adas_lca_r_w_is_in_range(uint8_t value)
{
    return (value <= 2u);
}

uint8_t sr439_radar_rear_adas_adas_dow_l_w_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_radar_rear_adas_adas_dow_l_w_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_radar_rear_adas_adas_dow_l_w_is_in_range(uint8_t value)
{
    return (value <= 2u);
}

uint8_t sr439_radar_rear_adas_adas_dow_r_w_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_radar_rear_adas_adas_dow_r_w_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_radar_rear_adas_adas_dow_r_w_is_in_range(uint8_t value)
{
    return (value <= 2u);
}

uint8_t sr439_radar_rear_adas_adas_rcta_l_w_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_radar_rear_adas_adas_rcta_l_w_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_radar_rear_adas_adas_rcta_l_w_is_in_range(uint8_t value)
{
    return (value <= 2u);
}

uint8_t sr439_radar_rear_adas_adas_rcta_r_w_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_radar_rear_adas_adas_rcta_r_w_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_radar_rear_adas_adas_rcta_r_w_is_in_range(uint8_t value)
{
    return (value <= 2u);
}

uint8_t sr439_radar_rear_adas_adas_rctb_l_w_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_radar_rear_adas_adas_rctb_l_w_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_radar_rear_adas_adas_rctb_l_w_is_in_range(uint8_t value)
{
    return (value <= 2u);
}

uint8_t sr439_radar_rear_adas_adas_rctb_r_w_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_radar_rear_adas_adas_rctb_r_w_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_radar_rear_adas_adas_rctb_r_w_is_in_range(uint8_t value)
{
    return (value <= 2u);
}

uint8_t sr439_radar_rear_adas_adas_fcta_l_w_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_radar_rear_adas_adas_fcta_l_w_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_radar_rear_adas_adas_fcta_l_w_is_in_range(uint8_t value)
{
    return (value <= 2u);
}

uint8_t sr439_radar_rear_adas_adas_fcta_r_w_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_radar_rear_adas_adas_fcta_r_w_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_radar_rear_adas_adas_fcta_r_w_is_in_range(uint8_t value)
{
    return (value <= 2u);
}

uint8_t sr439_radar_rear_adas_adas_fctb_l_w_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_radar_rear_adas_adas_fctb_l_w_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_radar_rear_adas_adas_fctb_l_w_is_in_range(uint8_t value)
{
    return (value <= 2u);
}

uint8_t sr439_radar_rear_adas_adas_fctb_r_w_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_radar_rear_adas_adas_fctb_r_w_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_radar_rear_adas_adas_fctb_r_w_is_in_range(uint8_t value)
{
    return (value <= 2u);
}

uint8_t sr439_radar_rear_adas_adas_fcw_w_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_radar_rear_adas_adas_fcw_w_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_radar_rear_adas_adas_fcw_w_is_in_range(uint8_t value)
{
    return (value <= 2u);
}

uint8_t sr439_radar_rear_adas_adas_rcw_w_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_radar_rear_adas_adas_rcw_w_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_radar_rear_adas_adas_rcw_w_is_in_range(uint8_t value)
{
    return (value <= 2u);
}

int16_t sr439_radar_rear_adas_adas_time_diff_encode(double value)
{
    return (int16_t)(value);
}

double sr439_radar_rear_adas_adas_time_diff_decode(int16_t value)
{
    return ((double)value);
}

bool sr439_radar_rear_adas_adas_time_diff_is_in_range(int16_t value)
{
    (void)value;

    return (true);
}

int sr439_obj_general_info_rl_pack(
    uint8_t *dst_p,
    const struct sr439_obj_general_info_rl_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[0] |= pack_left_shift_u8(src_p->obj_id, 0u, 0xffu);
    dst_p[1] |= pack_right_shift_u16(src_p->obj_dist_long, 4u, 0xffu);
    dst_p[2] |= pack_left_shift_u16(src_p->obj_dist_long, 4u, 0xf0u);
    dst_p[2] |= pack_right_shift_u16(src_p->obj_dist_lat, 11u, 0x0fu);
    dst_p[3] |= pack_right_shift_u16(src_p->obj_dist_lat, 3u, 0xffu);
    dst_p[4] |= pack_left_shift_u16(src_p->obj_dist_lat, 5u, 0xe0u);
    dst_p[4] |= pack_left_shift_u8(src_p->obj_dyn_prop, 0u, 0x0fu);
    dst_p[5] |= pack_right_shift_u16(src_p->obj_vrel_long, 4u, 0xffu);
    dst_p[6] |= pack_left_shift_u16(src_p->obj_vrel_long, 4u, 0xf0u);
    dst_p[6] |= pack_right_shift_u16(src_p->obj_vrel_lat, 8u, 0x0fu);
    dst_p[7] |= pack_left_shift_u16(src_p->obj_vrel_lat, 0u, 0xffu);

    return (8);
}

int sr439_obj_general_info_rl_unpack(
    struct sr439_obj_general_info_rl_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->obj_id = unpack_right_shift_u8(src_p[0], 0u, 0xffu);
    dst_p->obj_dist_long = unpack_left_shift_u16(src_p[1], 4u, 0xffu);
    dst_p->obj_dist_long |= unpack_right_shift_u16(src_p[2], 4u, 0xf0u);
    dst_p->obj_dist_lat = unpack_left_shift_u16(src_p[2], 11u, 0x0fu);
    dst_p->obj_dist_lat |= unpack_left_shift_u16(src_p[3], 3u, 0xffu);
    dst_p->obj_dist_lat |= unpack_right_shift_u16(src_p[4], 5u, 0xe0u);
    dst_p->obj_dyn_prop = unpack_right_shift_u8(src_p[4], 0u, 0x0fu);
    dst_p->obj_vrel_long = unpack_left_shift_u16(src_p[5], 4u, 0xffu);
    dst_p->obj_vrel_long |= unpack_right_shift_u16(src_p[6], 4u, 0xf0u);
    dst_p->obj_vrel_lat = unpack_left_shift_u16(src_p[6], 8u, 0x0fu);
    dst_p->obj_vrel_lat |= unpack_right_shift_u16(src_p[7], 0u, 0xffu);

    return (0);
}

int sr439_obj_general_info_rl_init(struct sr439_obj_general_info_rl_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct sr439_obj_general_info_rl_t));

    return 0;
}

uint8_t sr439_obj_general_info_rl_obj_id_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_general_info_rl_obj_id_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_general_info_rl_obj_id_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint16_t sr439_obj_general_info_rl_obj_dist_long_encode(double value)
{
    return (uint16_t)((value - -60.0) / 0.0625);
}

double sr439_obj_general_info_rl_obj_dist_long_decode(uint16_t value)
{
    return (((double)value * 0.0625) + -60.0);
}

bool sr439_obj_general_info_rl_obj_dist_long_is_in_range(uint16_t value)
{
    return (value <= 3360u);
}

uint16_t sr439_obj_general_info_rl_obj_dist_lat_encode(double value)
{
    return (uint16_t)((value - -128.0) / 0.0078);
}

double sr439_obj_general_info_rl_obj_dist_lat_decode(uint16_t value)
{
    return (((double)value * 0.0078) + -128.0);
}

bool sr439_obj_general_info_rl_obj_dist_lat_is_in_range(uint16_t value)
{
    return (value <= 32804u);
}

uint8_t sr439_obj_general_info_rl_obj_dyn_prop_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_general_info_rl_obj_dyn_prop_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_general_info_rl_obj_dyn_prop_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint16_t sr439_obj_general_info_rl_obj_vrel_long_encode(double value)
{
    return (uint16_t)((value - -102.0) / 0.05);
}

double sr439_obj_general_info_rl_obj_vrel_long_decode(uint16_t value)
{
    return (((double)value * 0.05) + -102.0);
}

bool sr439_obj_general_info_rl_obj_vrel_long_is_in_range(uint16_t value)
{
    return (value <= 4095u);
}

uint16_t sr439_obj_general_info_rl_obj_vrel_lat_encode(double value)
{
    return (uint16_t)((value - -102.0) / 0.05);
}

double sr439_obj_general_info_rl_obj_vrel_lat_decode(uint16_t value)
{
    return (((double)value * 0.05) + -102.0);
}

bool sr439_obj_general_info_rl_obj_vrel_lat_is_in_range(uint16_t value)
{
    return (value <= 4095u);
}

int sr439_obj_0_status_rl_pack(
    uint8_t *dst_p,
    const struct sr439_obj_0_status_rl_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[0] |= pack_left_shift_u8(src_p->obj_nof_object, 0u, 0xffu);
    dst_p[1] |= pack_right_shift_u16(src_p->obj_meas_counter, 8u, 0xffu);
    dst_p[2] |= pack_left_shift_u16(src_p->obj_meas_counter, 0u, 0xffu);
    dst_p[3] |= pack_left_shift_u8(src_p->obj_interface_version, 4u, 0xf0u);
    dst_p[3] |= pack_left_shift_u8(src_p->obj_bsd_warning, 2u, 0x0cu);
    dst_p[3] |= pack_left_shift_u8(src_p->obj_lca_warning, 0u, 0x03u);
    dst_p[4] |= pack_left_shift_u8(src_p->obj_dow_warning, 6u, 0xc0u);
    dst_p[4] |= pack_left_shift_u8(src_p->obj_rcta_warning, 4u, 0x30u);
    dst_p[4] |= pack_left_shift_u8(src_p->obj_rctb_warning, 2u, 0x0cu);
    dst_p[4] |= pack_left_shift_u8(src_p->obj_fcta_warning, 0u, 0x03u);
    dst_p[5] |= pack_left_shift_u8(src_p->obj_fctb_warning, 6u, 0xc0u);
    dst_p[6] |= pack_left_shift_u8(src_p->obj_cipvid, 0u, 0xffu);

    return (8);
}

int sr439_obj_0_status_rl_unpack(
    struct sr439_obj_0_status_rl_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->obj_nof_object = unpack_right_shift_u8(src_p[0], 0u, 0xffu);
    dst_p->obj_meas_counter = unpack_left_shift_u16(src_p[1], 8u, 0xffu);
    dst_p->obj_meas_counter |= unpack_right_shift_u16(src_p[2], 0u, 0xffu);
    dst_p->obj_interface_version = unpack_right_shift_u8(src_p[3], 4u, 0xf0u);
    dst_p->obj_bsd_warning = unpack_right_shift_u8(src_p[3], 2u, 0x0cu);
    dst_p->obj_lca_warning = unpack_right_shift_u8(src_p[3], 0u, 0x03u);
    dst_p->obj_dow_warning = unpack_right_shift_u8(src_p[4], 6u, 0xc0u);
    dst_p->obj_rcta_warning = unpack_right_shift_u8(src_p[4], 4u, 0x30u);
    dst_p->obj_rctb_warning = unpack_right_shift_u8(src_p[4], 2u, 0x0cu);
    dst_p->obj_fcta_warning = unpack_right_shift_u8(src_p[4], 0u, 0x03u);
    dst_p->obj_fctb_warning = unpack_right_shift_u8(src_p[5], 6u, 0xc0u);
    dst_p->obj_cipvid = unpack_right_shift_u8(src_p[6], 0u, 0xffu);

    return (0);
}

int sr439_obj_0_status_rl_init(struct sr439_obj_0_status_rl_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct sr439_obj_0_status_rl_t));

    return 0;
}

uint8_t sr439_obj_0_status_rl_obj_nof_object_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_0_status_rl_obj_nof_object_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_0_status_rl_obj_nof_object_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint16_t sr439_obj_0_status_rl_obj_meas_counter_encode(double value)
{
    return (uint16_t)(value);
}

double sr439_obj_0_status_rl_obj_meas_counter_decode(uint16_t value)
{
    return ((double)value);
}

bool sr439_obj_0_status_rl_obj_meas_counter_is_in_range(uint16_t value)
{
    (void)value;

    return (true);
}

uint8_t sr439_obj_0_status_rl_obj_interface_version_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_0_status_rl_obj_interface_version_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_0_status_rl_obj_interface_version_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint8_t sr439_obj_0_status_rl_obj_bsd_warning_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_0_status_rl_obj_bsd_warning_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_0_status_rl_obj_bsd_warning_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t sr439_obj_0_status_rl_obj_lca_warning_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_0_status_rl_obj_lca_warning_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_0_status_rl_obj_lca_warning_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t sr439_obj_0_status_rl_obj_dow_warning_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_0_status_rl_obj_dow_warning_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_0_status_rl_obj_dow_warning_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t sr439_obj_0_status_rl_obj_rcta_warning_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_0_status_rl_obj_rcta_warning_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_0_status_rl_obj_rcta_warning_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t sr439_obj_0_status_rl_obj_rctb_warning_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_0_status_rl_obj_rctb_warning_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_0_status_rl_obj_rctb_warning_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t sr439_obj_0_status_rl_obj_fcta_warning_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_0_status_rl_obj_fcta_warning_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_0_status_rl_obj_fcta_warning_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t sr439_obj_0_status_rl_obj_fctb_warning_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_0_status_rl_obj_fctb_warning_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_0_status_rl_obj_fctb_warning_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t sr439_obj_0_status_rl_obj_cipvid_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_obj_0_status_rl_obj_cipvid_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_obj_0_status_rl_obj_cipvid_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

int sr439_cluster_general_information_rl_pack(
    uint8_t *dst_p,
    const struct sr439_cluster_general_information_rl_t *src_p,
    size_t size)
{
    if (size < 64u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 64);

    dst_p[0] |= pack_left_shift_u8(src_p->cluster_id_1, 0u, 0xffu);
    dst_p[1] |= pack_right_shift_u16(src_p->cluster_range_1, 6u, 0xffu);
    dst_p[2] |= pack_left_shift_u16(src_p->cluster_range_1, 2u, 0xfcu);
    dst_p[2] |= pack_right_shift_u16(src_p->cluster_velocity_1, 11u, 0x03u);
    dst_p[3] |= pack_right_shift_u16(src_p->cluster_velocity_1, 3u, 0xffu);
    dst_p[4] |= pack_left_shift_u16(src_p->cluster_velocity_1, 5u, 0xe0u);
    dst_p[4] |= pack_right_shift_u16(src_p->cluster_azimuth_1, 7u, 0x1fu);
    dst_p[5] |= pack_left_shift_u16(src_p->cluster_azimuth_1, 1u, 0xfeu);
    dst_p[5] |= pack_right_shift_u16(src_p->cluster_elevation_1, 9u, 0x01u);
    dst_p[6] |= pack_right_shift_u16(src_p->cluster_elevation_1, 1u, 0xffu);
    dst_p[7] |= pack_left_shift_u16(src_p->cluster_elevation_1, 7u, 0x80u);
    dst_p[7] |= pack_left_shift_u8(src_p->cluster_dyn_prop_1, 5u, 0x60u);
    dst_p[7] |= pack_left_shift_u8(src_p->cluster_prob_of_exist_1, 2u, 0x1cu);
    dst_p[7] |= pack_right_shift_u8(src_p->cluster_rcs_1, 6u, 0x03u);
    dst_p[8] |= pack_left_shift_u8(src_p->cluster_rcs_1, 2u, 0xfcu);
    dst_p[8] |= pack_right_shift_u16(src_p->cluster_power_1, 7u, 0x03u);
    dst_p[9] |= pack_left_shift_u16(src_p->cluster_power_1, 1u, 0xfeu);
    dst_p[9] |= pack_right_shift_u16(src_p->cluster_snr_1, 8u, 0x01u);
    dst_p[10] |= pack_left_shift_u16(src_p->cluster_snr_1, 0u, 0xffu);
    dst_p[12] |= pack_left_shift_u8(src_p->cluster_id_2, 0u, 0xffu);
    dst_p[13] |= pack_right_shift_u16(src_p->cluster_range_2, 6u, 0xffu);
    dst_p[14] |= pack_left_shift_u16(src_p->cluster_range_2, 2u, 0xfcu);
    dst_p[14] |= pack_right_shift_u16(src_p->cluster_velocity_2, 11u, 0x03u);
    dst_p[15] |= pack_right_shift_u16(src_p->cluster_velocity_2, 3u, 0xffu);
    dst_p[16] |= pack_left_shift_u16(src_p->cluster_velocity_2, 5u, 0xe0u);
    dst_p[16] |= pack_right_shift_u16(src_p->cluster_azimuth_2, 7u, 0x1fu);
    dst_p[17] |= pack_left_shift_u16(src_p->cluster_azimuth_2, 1u, 0xfeu);
    dst_p[17] |= pack_right_shift_u16(src_p->cluster_elevation_2, 9u, 0x01u);
    dst_p[18] |= pack_right_shift_u16(src_p->cluster_elevation_2, 1u, 0xffu);
    dst_p[19] |= pack_left_shift_u16(src_p->cluster_elevation_2, 7u, 0x80u);
    dst_p[19] |= pack_left_shift_u8(src_p->cluster_dyn_prop_2, 5u, 0x60u);
    dst_p[19] |= pack_left_shift_u8(src_p->cluster_prob_of_exist_2, 2u, 0x1cu);
    dst_p[19] |= pack_right_shift_u8(src_p->cluster_rcs_2, 6u, 0x03u);
    dst_p[20] |= pack_left_shift_u8(src_p->cluster_rcs_2, 2u, 0xfcu);
    dst_p[20] |= pack_right_shift_u16(src_p->cluster_power_2, 7u, 0x03u);
    dst_p[21] |= pack_left_shift_u16(src_p->cluster_power_2, 1u, 0xfeu);
    dst_p[21] |= pack_right_shift_u16(src_p->cluster_snr_2, 8u, 0x01u);
    dst_p[22] |= pack_left_shift_u16(src_p->cluster_snr_2, 0u, 0xffu);
    dst_p[24] |= pack_left_shift_u8(src_p->cluster_id_3, 0u, 0xffu);
    dst_p[25] |= pack_right_shift_u16(src_p->cluster_range_3, 6u, 0xffu);
    dst_p[26] |= pack_left_shift_u16(src_p->cluster_range_3, 2u, 0xfcu);
    dst_p[26] |= pack_right_shift_u16(src_p->cluster_velocity_3, 11u, 0x03u);
    dst_p[27] |= pack_right_shift_u16(src_p->cluster_velocity_3, 3u, 0xffu);
    dst_p[28] |= pack_left_shift_u16(src_p->cluster_velocity_3, 5u, 0xe0u);
    dst_p[28] |= pack_right_shift_u16(src_p->cluster_azimuth_3, 7u, 0x1fu);
    dst_p[29] |= pack_left_shift_u16(src_p->cluster_azimuth_3, 1u, 0xfeu);
    dst_p[29] |= pack_right_shift_u16(src_p->cluster_elevation_3, 9u, 0x01u);
    dst_p[30] |= pack_right_shift_u16(src_p->cluster_elevation_3, 1u, 0xffu);
    dst_p[31] |= pack_left_shift_u16(src_p->cluster_elevation_3, 7u, 0x80u);
    dst_p[31] |= pack_left_shift_u8(src_p->cluster_dyn_prop_3, 5u, 0x60u);
    dst_p[31] |= pack_left_shift_u8(src_p->cluster_prob_of_exist_3, 2u, 0x1cu);
    dst_p[31] |= pack_right_shift_u8(src_p->cluster_rcs_3, 6u, 0x03u);
    dst_p[32] |= pack_left_shift_u8(src_p->cluster_rcs_3, 2u, 0xfcu);
    dst_p[32] |= pack_right_shift_u16(src_p->cluster_power_3, 7u, 0x03u);
    dst_p[33] |= pack_left_shift_u16(src_p->cluster_power_3, 1u, 0xfeu);
    dst_p[33] |= pack_right_shift_u16(src_p->cluster_snr_3, 8u, 0x01u);
    dst_p[34] |= pack_left_shift_u16(src_p->cluster_snr_3, 0u, 0xffu);
    dst_p[36] |= pack_left_shift_u8(src_p->cluster_id_4, 0u, 0xffu);
    dst_p[37] |= pack_right_shift_u16(src_p->cluster_range_4, 6u, 0xffu);
    dst_p[38] |= pack_left_shift_u16(src_p->cluster_range_4, 2u, 0xfcu);
    dst_p[38] |= pack_right_shift_u16(src_p->cluster_velocity_4, 11u, 0x03u);
    dst_p[39] |= pack_right_shift_u16(src_p->cluster_velocity_4, 3u, 0xffu);
    dst_p[40] |= pack_left_shift_u16(src_p->cluster_velocity_4, 5u, 0xe0u);
    dst_p[40] |= pack_right_shift_u16(src_p->cluster_azimuth_4, 7u, 0x1fu);
    dst_p[41] |= pack_left_shift_u16(src_p->cluster_azimuth_4, 1u, 0xfeu);
    dst_p[41] |= pack_right_shift_u16(src_p->cluster_elevation_4, 9u, 0x01u);
    dst_p[42] |= pack_right_shift_u16(src_p->cluster_elevation_4, 1u, 0xffu);
    dst_p[43] |= pack_left_shift_u16(src_p->cluster_elevation_4, 7u, 0x80u);
    dst_p[43] |= pack_left_shift_u8(src_p->cluster_dyn_prop_4, 5u, 0x60u);
    dst_p[43] |= pack_left_shift_u8(src_p->cluster_prob_of_exist_4, 2u, 0x1cu);
    dst_p[43] |= pack_right_shift_u8(src_p->cluster_rcs_4, 6u, 0x03u);
    dst_p[44] |= pack_left_shift_u8(src_p->cluster_rcs_4, 2u, 0xfcu);
    dst_p[44] |= pack_right_shift_u16(src_p->cluster_power_4, 7u, 0x03u);
    dst_p[45] |= pack_left_shift_u16(src_p->cluster_power_4, 1u, 0xfeu);
    dst_p[45] |= pack_right_shift_u16(src_p->cluster_snr_4, 8u, 0x01u);
    dst_p[46] |= pack_left_shift_u16(src_p->cluster_snr_4, 0u, 0xffu);
    dst_p[48] |= pack_left_shift_u8(src_p->cluster_id_5, 0u, 0xffu);
    dst_p[49] |= pack_right_shift_u16(src_p->cluster_range_5, 6u, 0xffu);
    dst_p[50] |= pack_left_shift_u16(src_p->cluster_range_5, 2u, 0xfcu);
    dst_p[50] |= pack_right_shift_u16(src_p->cluster_velocity_5, 11u, 0x03u);
    dst_p[51] |= pack_right_shift_u16(src_p->cluster_velocity_5, 3u, 0xffu);
    dst_p[52] |= pack_left_shift_u16(src_p->cluster_velocity_5, 5u, 0xe0u);
    dst_p[52] |= pack_right_shift_u16(src_p->cluster_azimuth_5, 7u, 0x1fu);
    dst_p[53] |= pack_left_shift_u16(src_p->cluster_azimuth_5, 1u, 0xfeu);
    dst_p[53] |= pack_right_shift_u16(src_p->cluster_elevation_5, 9u, 0x01u);
    dst_p[54] |= pack_right_shift_u16(src_p->cluster_elevation_5, 1u, 0xffu);
    dst_p[55] |= pack_left_shift_u16(src_p->cluster_elevation_5, 7u, 0x80u);
    dst_p[55] |= pack_left_shift_u8(src_p->cluster_dyn_prop_5, 5u, 0x60u);
    dst_p[55] |= pack_left_shift_u8(src_p->cluster_prob_of_exist_5, 2u, 0x1cu);
    dst_p[55] |= pack_right_shift_u8(src_p->cluster_rcs_5, 6u, 0x03u);
    dst_p[56] |= pack_left_shift_u8(src_p->cluster_rcs_5, 2u, 0xfcu);
    dst_p[56] |= pack_right_shift_u16(src_p->cluster_power_5, 7u, 0x03u);
    dst_p[57] |= pack_left_shift_u16(src_p->cluster_power_5, 1u, 0xfeu);
    dst_p[57] |= pack_right_shift_u16(src_p->cluster_snr_5, 8u, 0x01u);
    dst_p[58] |= pack_left_shift_u16(src_p->cluster_snr_5, 0u, 0xffu);

    return (64);
}

int sr439_cluster_general_information_rl_unpack(
    struct sr439_cluster_general_information_rl_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 64u) {
        return (-EINVAL);
    }

    dst_p->cluster_id_1 = unpack_right_shift_u8(src_p[0], 0u, 0xffu);
    dst_p->cluster_range_1 = unpack_left_shift_u16(src_p[1], 6u, 0xffu);
    dst_p->cluster_range_1 |= unpack_right_shift_u16(src_p[2], 2u, 0xfcu);
    dst_p->cluster_velocity_1 = unpack_left_shift_u16(src_p[2], 11u, 0x03u);
    dst_p->cluster_velocity_1 |= unpack_left_shift_u16(src_p[3], 3u, 0xffu);
    dst_p->cluster_velocity_1 |= unpack_right_shift_u16(src_p[4], 5u, 0xe0u);
    dst_p->cluster_azimuth_1 = unpack_left_shift_u16(src_p[4], 7u, 0x1fu);
    dst_p->cluster_azimuth_1 |= unpack_right_shift_u16(src_p[5], 1u, 0xfeu);
    dst_p->cluster_elevation_1 = unpack_left_shift_u16(src_p[5], 9u, 0x01u);
    dst_p->cluster_elevation_1 |= unpack_left_shift_u16(src_p[6], 1u, 0xffu);
    dst_p->cluster_elevation_1 |= unpack_right_shift_u16(src_p[7], 7u, 0x80u);
    dst_p->cluster_dyn_prop_1 = unpack_right_shift_u8(src_p[7], 5u, 0x60u);
    dst_p->cluster_prob_of_exist_1 = unpack_right_shift_u8(src_p[7], 2u, 0x1cu);
    dst_p->cluster_rcs_1 = unpack_left_shift_u8(src_p[7], 6u, 0x03u);
    dst_p->cluster_rcs_1 |= unpack_right_shift_u8(src_p[8], 2u, 0xfcu);
    dst_p->cluster_power_1 = unpack_left_shift_u16(src_p[8], 7u, 0x03u);
    dst_p->cluster_power_1 |= unpack_right_shift_u16(src_p[9], 1u, 0xfeu);
    dst_p->cluster_snr_1 = unpack_left_shift_u16(src_p[9], 8u, 0x01u);
    dst_p->cluster_snr_1 |= unpack_right_shift_u16(src_p[10], 0u, 0xffu);
    dst_p->cluster_id_2 = unpack_right_shift_u8(src_p[12], 0u, 0xffu);
    dst_p->cluster_range_2 = unpack_left_shift_u16(src_p[13], 6u, 0xffu);
    dst_p->cluster_range_2 |= unpack_right_shift_u16(src_p[14], 2u, 0xfcu);
    dst_p->cluster_velocity_2 = unpack_left_shift_u16(src_p[14], 11u, 0x03u);
    dst_p->cluster_velocity_2 |= unpack_left_shift_u16(src_p[15], 3u, 0xffu);
    dst_p->cluster_velocity_2 |= unpack_right_shift_u16(src_p[16], 5u, 0xe0u);
    dst_p->cluster_azimuth_2 = unpack_left_shift_u16(src_p[16], 7u, 0x1fu);
    dst_p->cluster_azimuth_2 |= unpack_right_shift_u16(src_p[17], 1u, 0xfeu);
    dst_p->cluster_elevation_2 = unpack_left_shift_u16(src_p[17], 9u, 0x01u);
    dst_p->cluster_elevation_2 |= unpack_left_shift_u16(src_p[18], 1u, 0xffu);
    dst_p->cluster_elevation_2 |= unpack_right_shift_u16(src_p[19], 7u, 0x80u);
    dst_p->cluster_dyn_prop_2 = unpack_right_shift_u8(src_p[19], 5u, 0x60u);
    dst_p->cluster_prob_of_exist_2 = unpack_right_shift_u8(src_p[19], 2u, 0x1cu);
    dst_p->cluster_rcs_2 = unpack_left_shift_u8(src_p[19], 6u, 0x03u);
    dst_p->cluster_rcs_2 |= unpack_right_shift_u8(src_p[20], 2u, 0xfcu);
    dst_p->cluster_power_2 = unpack_left_shift_u16(src_p[20], 7u, 0x03u);
    dst_p->cluster_power_2 |= unpack_right_shift_u16(src_p[21], 1u, 0xfeu);
    dst_p->cluster_snr_2 = unpack_left_shift_u16(src_p[21], 8u, 0x01u);
    dst_p->cluster_snr_2 |= unpack_right_shift_u16(src_p[22], 0u, 0xffu);
    dst_p->cluster_id_3 = unpack_right_shift_u8(src_p[24], 0u, 0xffu);
    dst_p->cluster_range_3 = unpack_left_shift_u16(src_p[25], 6u, 0xffu);
    dst_p->cluster_range_3 |= unpack_right_shift_u16(src_p[26], 2u, 0xfcu);
    dst_p->cluster_velocity_3 = unpack_left_shift_u16(src_p[26], 11u, 0x03u);
    dst_p->cluster_velocity_3 |= unpack_left_shift_u16(src_p[27], 3u, 0xffu);
    dst_p->cluster_velocity_3 |= unpack_right_shift_u16(src_p[28], 5u, 0xe0u);
    dst_p->cluster_azimuth_3 = unpack_left_shift_u16(src_p[28], 7u, 0x1fu);
    dst_p->cluster_azimuth_3 |= unpack_right_shift_u16(src_p[29], 1u, 0xfeu);
    dst_p->cluster_elevation_3 = unpack_left_shift_u16(src_p[29], 9u, 0x01u);
    dst_p->cluster_elevation_3 |= unpack_left_shift_u16(src_p[30], 1u, 0xffu);
    dst_p->cluster_elevation_3 |= unpack_right_shift_u16(src_p[31], 7u, 0x80u);
    dst_p->cluster_dyn_prop_3 = unpack_right_shift_u8(src_p[31], 5u, 0x60u);
    dst_p->cluster_prob_of_exist_3 = unpack_right_shift_u8(src_p[31], 2u, 0x1cu);
    dst_p->cluster_rcs_3 = unpack_left_shift_u8(src_p[31], 6u, 0x03u);
    dst_p->cluster_rcs_3 |= unpack_right_shift_u8(src_p[32], 2u, 0xfcu);
    dst_p->cluster_power_3 = unpack_left_shift_u16(src_p[32], 7u, 0x03u);
    dst_p->cluster_power_3 |= unpack_right_shift_u16(src_p[33], 1u, 0xfeu);
    dst_p->cluster_snr_3 = unpack_left_shift_u16(src_p[33], 8u, 0x01u);
    dst_p->cluster_snr_3 |= unpack_right_shift_u16(src_p[34], 0u, 0xffu);
    dst_p->cluster_id_4 = unpack_right_shift_u8(src_p[36], 0u, 0xffu);
    dst_p->cluster_range_4 = unpack_left_shift_u16(src_p[37], 6u, 0xffu);
    dst_p->cluster_range_4 |= unpack_right_shift_u16(src_p[38], 2u, 0xfcu);
    dst_p->cluster_velocity_4 = unpack_left_shift_u16(src_p[38], 11u, 0x03u);
    dst_p->cluster_velocity_4 |= unpack_left_shift_u16(src_p[39], 3u, 0xffu);
    dst_p->cluster_velocity_4 |= unpack_right_shift_u16(src_p[40], 5u, 0xe0u);
    dst_p->cluster_azimuth_4 = unpack_left_shift_u16(src_p[40], 7u, 0x1fu);
    dst_p->cluster_azimuth_4 |= unpack_right_shift_u16(src_p[41], 1u, 0xfeu);
    dst_p->cluster_elevation_4 = unpack_left_shift_u16(src_p[41], 9u, 0x01u);
    dst_p->cluster_elevation_4 |= unpack_left_shift_u16(src_p[42], 1u, 0xffu);
    dst_p->cluster_elevation_4 |= unpack_right_shift_u16(src_p[43], 7u, 0x80u);
    dst_p->cluster_dyn_prop_4 = unpack_right_shift_u8(src_p[43], 5u, 0x60u);
    dst_p->cluster_prob_of_exist_4 = unpack_right_shift_u8(src_p[43], 2u, 0x1cu);
    dst_p->cluster_rcs_4 = unpack_left_shift_u8(src_p[43], 6u, 0x03u);
    dst_p->cluster_rcs_4 |= unpack_right_shift_u8(src_p[44], 2u, 0xfcu);
    dst_p->cluster_power_4 = unpack_left_shift_u16(src_p[44], 7u, 0x03u);
    dst_p->cluster_power_4 |= unpack_right_shift_u16(src_p[45], 1u, 0xfeu);
    dst_p->cluster_snr_4 = unpack_left_shift_u16(src_p[45], 8u, 0x01u);
    dst_p->cluster_snr_4 |= unpack_right_shift_u16(src_p[46], 0u, 0xffu);
    dst_p->cluster_id_5 = unpack_right_shift_u8(src_p[48], 0u, 0xffu);
    dst_p->cluster_range_5 = unpack_left_shift_u16(src_p[49], 6u, 0xffu);
    dst_p->cluster_range_5 |= unpack_right_shift_u16(src_p[50], 2u, 0xfcu);
    dst_p->cluster_velocity_5 = unpack_left_shift_u16(src_p[50], 11u, 0x03u);
    dst_p->cluster_velocity_5 |= unpack_left_shift_u16(src_p[51], 3u, 0xffu);
    dst_p->cluster_velocity_5 |= unpack_right_shift_u16(src_p[52], 5u, 0xe0u);
    dst_p->cluster_azimuth_5 = unpack_left_shift_u16(src_p[52], 7u, 0x1fu);
    dst_p->cluster_azimuth_5 |= unpack_right_shift_u16(src_p[53], 1u, 0xfeu);
    dst_p->cluster_elevation_5 = unpack_left_shift_u16(src_p[53], 9u, 0x01u);
    dst_p->cluster_elevation_5 |= unpack_left_shift_u16(src_p[54], 1u, 0xffu);
    dst_p->cluster_elevation_5 |= unpack_right_shift_u16(src_p[55], 7u, 0x80u);
    dst_p->cluster_dyn_prop_5 = unpack_right_shift_u8(src_p[55], 5u, 0x60u);
    dst_p->cluster_prob_of_exist_5 = unpack_right_shift_u8(src_p[55], 2u, 0x1cu);
    dst_p->cluster_rcs_5 = unpack_left_shift_u8(src_p[55], 6u, 0x03u);
    dst_p->cluster_rcs_5 |= unpack_right_shift_u8(src_p[56], 2u, 0xfcu);
    dst_p->cluster_power_5 = unpack_left_shift_u16(src_p[56], 7u, 0x03u);
    dst_p->cluster_power_5 |= unpack_right_shift_u16(src_p[57], 1u, 0xfeu);
    dst_p->cluster_snr_5 = unpack_left_shift_u16(src_p[57], 8u, 0x01u);
    dst_p->cluster_snr_5 |= unpack_right_shift_u16(src_p[58], 0u, 0xffu);

    return (0);
}

int sr439_cluster_general_information_rl_init(struct sr439_cluster_general_information_rl_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct sr439_cluster_general_information_rl_t));

    return 0;
}

uint8_t sr439_cluster_general_information_rl_cluster_id_1_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_cluster_general_information_rl_cluster_id_1_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_cluster_general_information_rl_cluster_id_1_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint16_t sr439_cluster_general_information_rl_cluster_range_1_encode(double value)
{
    return (uint16_t)(value / 0.01);
}

double sr439_cluster_general_information_rl_cluster_range_1_decode(uint16_t value)
{
    return ((double)value * 0.01);
}

bool sr439_cluster_general_information_rl_cluster_range_1_is_in_range(uint16_t value)
{
    return (value <= 12000u);
}

uint16_t sr439_cluster_general_information_rl_cluster_velocity_1_encode(double value)
{
    return (uint16_t)((value - -111.11) / 0.025);
}

double sr439_cluster_general_information_rl_cluster_velocity_1_decode(uint16_t value)
{
    return (((double)value * 0.025) + -111.11);
}

bool sr439_cluster_general_information_rl_cluster_velocity_1_is_in_range(uint16_t value)
{
    return (value <= 6666u);
}

uint16_t sr439_cluster_general_information_rl_cluster_azimuth_1_encode(double value)
{
    return (uint16_t)((value - -90.0) / 0.05);
}

double sr439_cluster_general_information_rl_cluster_azimuth_1_decode(uint16_t value)
{
    return (((double)value * 0.05) + -90.0);
}

bool sr439_cluster_general_information_rl_cluster_azimuth_1_is_in_range(uint16_t value)
{
    return (value <= 3600u);
}

uint16_t sr439_cluster_general_information_rl_cluster_elevation_1_encode(double value)
{
    return (uint16_t)((value - -25.0) / 0.05);
}

double sr439_cluster_general_information_rl_cluster_elevation_1_decode(uint16_t value)
{
    return (((double)value * 0.05) + -25.0);
}

bool sr439_cluster_general_information_rl_cluster_elevation_1_is_in_range(uint16_t value)
{
    return (value <= 1000u);
}

uint8_t sr439_cluster_general_information_rl_cluster_dyn_prop_1_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_cluster_general_information_rl_cluster_dyn_prop_1_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_cluster_general_information_rl_cluster_dyn_prop_1_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t sr439_cluster_general_information_rl_cluster_prob_of_exist_1_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_cluster_general_information_rl_cluster_prob_of_exist_1_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_cluster_general_information_rl_cluster_prob_of_exist_1_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t sr439_cluster_general_information_rl_cluster_rcs_1_encode(double value)
{
    return (uint8_t)((value - -30.0) / 0.5);
}

double sr439_cluster_general_information_rl_cluster_rcs_1_decode(uint8_t value)
{
    return (((double)value * 0.5) + -30.0);
}

bool sr439_cluster_general_information_rl_cluster_rcs_1_is_in_range(uint8_t value)
{
    return (value <= 254u);
}

uint16_t sr439_cluster_general_information_rl_cluster_power_1_encode(double value)
{
    return (uint16_t)((value - -200.0) / 0.5);
}

double sr439_cluster_general_information_rl_cluster_power_1_decode(uint16_t value)
{
    return (((double)value * 0.5) + -200.0);
}

bool sr439_cluster_general_information_rl_cluster_power_1_is_in_range(uint16_t value)
{
    return (value <= 510u);
}

uint16_t sr439_cluster_general_information_rl_cluster_snr_1_encode(double value)
{
    return (uint16_t)((value - -10.0) / 0.5);
}

double sr439_cluster_general_information_rl_cluster_snr_1_decode(uint16_t value)
{
    return (((double)value * 0.5) + -10.0);
}

bool sr439_cluster_general_information_rl_cluster_snr_1_is_in_range(uint16_t value)
{
    return (value <= 510u);
}

uint8_t sr439_cluster_general_information_rl_cluster_id_2_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_cluster_general_information_rl_cluster_id_2_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_cluster_general_information_rl_cluster_id_2_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint16_t sr439_cluster_general_information_rl_cluster_range_2_encode(double value)
{
    return (uint16_t)(value / 0.01);
}

double sr439_cluster_general_information_rl_cluster_range_2_decode(uint16_t value)
{
    return ((double)value * 0.01);
}

bool sr439_cluster_general_information_rl_cluster_range_2_is_in_range(uint16_t value)
{
    return (value <= 12000u);
}

uint16_t sr439_cluster_general_information_rl_cluster_velocity_2_encode(double value)
{
    return (uint16_t)((value - -111.11) / 0.025);
}

double sr439_cluster_general_information_rl_cluster_velocity_2_decode(uint16_t value)
{
    return (((double)value * 0.025) + -111.11);
}

bool sr439_cluster_general_information_rl_cluster_velocity_2_is_in_range(uint16_t value)
{
    return (value <= 6666u);
}

uint16_t sr439_cluster_general_information_rl_cluster_azimuth_2_encode(double value)
{
    return (uint16_t)((value - -90.0) / 0.05);
}

double sr439_cluster_general_information_rl_cluster_azimuth_2_decode(uint16_t value)
{
    return (((double)value * 0.05) + -90.0);
}

bool sr439_cluster_general_information_rl_cluster_azimuth_2_is_in_range(uint16_t value)
{
    return (value <= 3600u);
}

uint16_t sr439_cluster_general_information_rl_cluster_elevation_2_encode(double value)
{
    return (uint16_t)((value - -25.0) / 0.05);
}

double sr439_cluster_general_information_rl_cluster_elevation_2_decode(uint16_t value)
{
    return (((double)value * 0.05) + -25.0);
}

bool sr439_cluster_general_information_rl_cluster_elevation_2_is_in_range(uint16_t value)
{
    return (value <= 1000u);
}

uint8_t sr439_cluster_general_information_rl_cluster_dyn_prop_2_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_cluster_general_information_rl_cluster_dyn_prop_2_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_cluster_general_information_rl_cluster_dyn_prop_2_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t sr439_cluster_general_information_rl_cluster_prob_of_exist_2_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_cluster_general_information_rl_cluster_prob_of_exist_2_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_cluster_general_information_rl_cluster_prob_of_exist_2_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t sr439_cluster_general_information_rl_cluster_rcs_2_encode(double value)
{
    return (uint8_t)((value - -30.0) / 0.5);
}

double sr439_cluster_general_information_rl_cluster_rcs_2_decode(uint8_t value)
{
    return (((double)value * 0.5) + -30.0);
}

bool sr439_cluster_general_information_rl_cluster_rcs_2_is_in_range(uint8_t value)
{
    return (value <= 254u);
}

uint16_t sr439_cluster_general_information_rl_cluster_power_2_encode(double value)
{
    return (uint16_t)((value - -200.0) / 0.5);
}

double sr439_cluster_general_information_rl_cluster_power_2_decode(uint16_t value)
{
    return (((double)value * 0.5) + -200.0);
}

bool sr439_cluster_general_information_rl_cluster_power_2_is_in_range(uint16_t value)
{
    return (value <= 510u);
}

uint16_t sr439_cluster_general_information_rl_cluster_snr_2_encode(double value)
{
    return (uint16_t)((value - -10.0) / 0.5);
}

double sr439_cluster_general_information_rl_cluster_snr_2_decode(uint16_t value)
{
    return (((double)value * 0.5) + -10.0);
}

bool sr439_cluster_general_information_rl_cluster_snr_2_is_in_range(uint16_t value)
{
    return (value <= 510u);
}

uint8_t sr439_cluster_general_information_rl_cluster_id_3_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_cluster_general_information_rl_cluster_id_3_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_cluster_general_information_rl_cluster_id_3_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint16_t sr439_cluster_general_information_rl_cluster_range_3_encode(double value)
{
    return (uint16_t)(value / 0.01);
}

double sr439_cluster_general_information_rl_cluster_range_3_decode(uint16_t value)
{
    return ((double)value * 0.01);
}

bool sr439_cluster_general_information_rl_cluster_range_3_is_in_range(uint16_t value)
{
    return (value <= 12000u);
}

uint16_t sr439_cluster_general_information_rl_cluster_velocity_3_encode(double value)
{
    return (uint16_t)((value - -111.11) / 0.025);
}

double sr439_cluster_general_information_rl_cluster_velocity_3_decode(uint16_t value)
{
    return (((double)value * 0.025) + -111.11);
}

bool sr439_cluster_general_information_rl_cluster_velocity_3_is_in_range(uint16_t value)
{
    return (value <= 6666u);
}

uint16_t sr439_cluster_general_information_rl_cluster_azimuth_3_encode(double value)
{
    return (uint16_t)((value - -90.0) / 0.05);
}

double sr439_cluster_general_information_rl_cluster_azimuth_3_decode(uint16_t value)
{
    return (((double)value * 0.05) + -90.0);
}

bool sr439_cluster_general_information_rl_cluster_azimuth_3_is_in_range(uint16_t value)
{
    return (value <= 3600u);
}

uint16_t sr439_cluster_general_information_rl_cluster_elevation_3_encode(double value)
{
    return (uint16_t)((value - -25.0) / 0.05);
}

double sr439_cluster_general_information_rl_cluster_elevation_3_decode(uint16_t value)
{
    return (((double)value * 0.05) + -25.0);
}

bool sr439_cluster_general_information_rl_cluster_elevation_3_is_in_range(uint16_t value)
{
    return (value <= 1000u);
}

uint8_t sr439_cluster_general_information_rl_cluster_dyn_prop_3_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_cluster_general_information_rl_cluster_dyn_prop_3_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_cluster_general_information_rl_cluster_dyn_prop_3_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t sr439_cluster_general_information_rl_cluster_prob_of_exist_3_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_cluster_general_information_rl_cluster_prob_of_exist_3_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_cluster_general_information_rl_cluster_prob_of_exist_3_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t sr439_cluster_general_information_rl_cluster_rcs_3_encode(double value)
{
    return (uint8_t)((value - -30.0) / 0.5);
}

double sr439_cluster_general_information_rl_cluster_rcs_3_decode(uint8_t value)
{
    return (((double)value * 0.5) + -30.0);
}

bool sr439_cluster_general_information_rl_cluster_rcs_3_is_in_range(uint8_t value)
{
    return (value <= 254u);
}

uint16_t sr439_cluster_general_information_rl_cluster_power_3_encode(double value)
{
    return (uint16_t)((value - -200.0) / 0.5);
}

double sr439_cluster_general_information_rl_cluster_power_3_decode(uint16_t value)
{
    return (((double)value * 0.5) + -200.0);
}

bool sr439_cluster_general_information_rl_cluster_power_3_is_in_range(uint16_t value)
{
    return (value <= 510u);
}

uint16_t sr439_cluster_general_information_rl_cluster_snr_3_encode(double value)
{
    return (uint16_t)((value - -10.0) / 0.5);
}

double sr439_cluster_general_information_rl_cluster_snr_3_decode(uint16_t value)
{
    return (((double)value * 0.5) + -10.0);
}

bool sr439_cluster_general_information_rl_cluster_snr_3_is_in_range(uint16_t value)
{
    return (value <= 510u);
}

uint8_t sr439_cluster_general_information_rl_cluster_id_4_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_cluster_general_information_rl_cluster_id_4_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_cluster_general_information_rl_cluster_id_4_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint16_t sr439_cluster_general_information_rl_cluster_range_4_encode(double value)
{
    return (uint16_t)(value / 0.01);
}

double sr439_cluster_general_information_rl_cluster_range_4_decode(uint16_t value)
{
    return ((double)value * 0.01);
}

bool sr439_cluster_general_information_rl_cluster_range_4_is_in_range(uint16_t value)
{
    return (value <= 12000u);
}

uint16_t sr439_cluster_general_information_rl_cluster_velocity_4_encode(double value)
{
    return (uint16_t)((value - -111.11) / 0.025);
}

double sr439_cluster_general_information_rl_cluster_velocity_4_decode(uint16_t value)
{
    return (((double)value * 0.025) + -111.11);
}

bool sr439_cluster_general_information_rl_cluster_velocity_4_is_in_range(uint16_t value)
{
    return (value <= 6666u);
}

uint16_t sr439_cluster_general_information_rl_cluster_azimuth_4_encode(double value)
{
    return (uint16_t)((value - -90.0) / 0.05);
}

double sr439_cluster_general_information_rl_cluster_azimuth_4_decode(uint16_t value)
{
    return (((double)value * 0.05) + -90.0);
}

bool sr439_cluster_general_information_rl_cluster_azimuth_4_is_in_range(uint16_t value)
{
    return (value <= 3600u);
}

uint16_t sr439_cluster_general_information_rl_cluster_elevation_4_encode(double value)
{
    return (uint16_t)((value - -25.0) / 0.05);
}

double sr439_cluster_general_information_rl_cluster_elevation_4_decode(uint16_t value)
{
    return (((double)value * 0.05) + -25.0);
}

bool sr439_cluster_general_information_rl_cluster_elevation_4_is_in_range(uint16_t value)
{
    return (value <= 1000u);
}

uint8_t sr439_cluster_general_information_rl_cluster_dyn_prop_4_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_cluster_general_information_rl_cluster_dyn_prop_4_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_cluster_general_information_rl_cluster_dyn_prop_4_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t sr439_cluster_general_information_rl_cluster_prob_of_exist_4_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_cluster_general_information_rl_cluster_prob_of_exist_4_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_cluster_general_information_rl_cluster_prob_of_exist_4_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t sr439_cluster_general_information_rl_cluster_rcs_4_encode(double value)
{
    return (uint8_t)((value - -30.0) / 0.5);
}

double sr439_cluster_general_information_rl_cluster_rcs_4_decode(uint8_t value)
{
    return (((double)value * 0.5) + -30.0);
}

bool sr439_cluster_general_information_rl_cluster_rcs_4_is_in_range(uint8_t value)
{
    return (value <= 254u);
}

uint16_t sr439_cluster_general_information_rl_cluster_power_4_encode(double value)
{
    return (uint16_t)((value - -200.0) / 0.5);
}

double sr439_cluster_general_information_rl_cluster_power_4_decode(uint16_t value)
{
    return (((double)value * 0.5) + -200.0);
}

bool sr439_cluster_general_information_rl_cluster_power_4_is_in_range(uint16_t value)
{
    return (value <= 510u);
}

uint16_t sr439_cluster_general_information_rl_cluster_snr_4_encode(double value)
{
    return (uint16_t)((value - -10.0) / 0.5);
}

double sr439_cluster_general_information_rl_cluster_snr_4_decode(uint16_t value)
{
    return (((double)value * 0.5) + -10.0);
}

bool sr439_cluster_general_information_rl_cluster_snr_4_is_in_range(uint16_t value)
{
    return (value <= 510u);
}

uint8_t sr439_cluster_general_information_rl_cluster_id_5_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_cluster_general_information_rl_cluster_id_5_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_cluster_general_information_rl_cluster_id_5_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint16_t sr439_cluster_general_information_rl_cluster_range_5_encode(double value)
{
    return (uint16_t)(value / 0.01);
}

double sr439_cluster_general_information_rl_cluster_range_5_decode(uint16_t value)
{
    return ((double)value * 0.01);
}

bool sr439_cluster_general_information_rl_cluster_range_5_is_in_range(uint16_t value)
{
    return (value <= 12000u);
}

uint16_t sr439_cluster_general_information_rl_cluster_velocity_5_encode(double value)
{
    return (uint16_t)((value - -111.11) / 0.025);
}

double sr439_cluster_general_information_rl_cluster_velocity_5_decode(uint16_t value)
{
    return (((double)value * 0.025) + -111.11);
}

bool sr439_cluster_general_information_rl_cluster_velocity_5_is_in_range(uint16_t value)
{
    return (value <= 6666u);
}

uint16_t sr439_cluster_general_information_rl_cluster_azimuth_5_encode(double value)
{
    return (uint16_t)((value - -90.0) / 0.05);
}

double sr439_cluster_general_information_rl_cluster_azimuth_5_decode(uint16_t value)
{
    return (((double)value * 0.05) + -90.0);
}

bool sr439_cluster_general_information_rl_cluster_azimuth_5_is_in_range(uint16_t value)
{
    return (value <= 3600u);
}

uint16_t sr439_cluster_general_information_rl_cluster_elevation_5_encode(double value)
{
    return (uint16_t)((value - -25.0) / 0.05);
}

double sr439_cluster_general_information_rl_cluster_elevation_5_decode(uint16_t value)
{
    return (((double)value * 0.05) + -25.0);
}

bool sr439_cluster_general_information_rl_cluster_elevation_5_is_in_range(uint16_t value)
{
    return (value <= 1000u);
}

uint8_t sr439_cluster_general_information_rl_cluster_dyn_prop_5_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_cluster_general_information_rl_cluster_dyn_prop_5_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_cluster_general_information_rl_cluster_dyn_prop_5_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t sr439_cluster_general_information_rl_cluster_prob_of_exist_5_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_cluster_general_information_rl_cluster_prob_of_exist_5_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_cluster_general_information_rl_cluster_prob_of_exist_5_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t sr439_cluster_general_information_rl_cluster_rcs_5_encode(double value)
{
    return (uint8_t)((value - -30.0) / 0.5);
}

double sr439_cluster_general_information_rl_cluster_rcs_5_decode(uint8_t value)
{
    return (((double)value * 0.5) + -30.0);
}

bool sr439_cluster_general_information_rl_cluster_rcs_5_is_in_range(uint8_t value)
{
    return (value <= 254u);
}

uint16_t sr439_cluster_general_information_rl_cluster_power_5_encode(double value)
{
    return (uint16_t)((value - -200.0) / 0.5);
}

double sr439_cluster_general_information_rl_cluster_power_5_decode(uint16_t value)
{
    return (((double)value * 0.5) + -200.0);
}

bool sr439_cluster_general_information_rl_cluster_power_5_is_in_range(uint16_t value)
{
    return (value <= 510u);
}

uint16_t sr439_cluster_general_information_rl_cluster_snr_5_encode(double value)
{
    return (uint16_t)((value - -10.0) / 0.5);
}

double sr439_cluster_general_information_rl_cluster_snr_5_decode(uint16_t value)
{
    return (((double)value * 0.5) + -10.0);
}

bool sr439_cluster_general_information_rl_cluster_snr_5_is_in_range(uint16_t value)
{
    return (value <= 510u);
}

int sr439_cluster_header_rl_pack(
    uint8_t *dst_p,
    const struct sr439_cluster_header_rl_t *src_p,
    size_t size)
{
    if (size < 24u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 24);

    dst_p[0] |= pack_left_shift_u8(src_p->cluster_frame_type, 6u, 0xc0u);
    dst_p[0] |= pack_right_shift_u32(src_p->cluster_frame_num, 18u, 0x3fu);
    dst_p[1] |= pack_right_shift_u32(src_p->cluster_frame_num, 10u, 0xffu);
    dst_p[2] |= pack_right_shift_u32(src_p->cluster_frame_num, 2u, 0xffu);
    dst_p[3] |= pack_left_shift_u32(src_p->cluster_frame_num, 6u, 0xc0u);
    dst_p[3] |= pack_right_shift_u8(src_p->cluster_target_number, 2u, 0x3fu);
    dst_p[4] |= pack_left_shift_u8(src_p->cluster_target_number, 6u, 0xc0u);
    dst_p[4] |= pack_right_shift_u32(src_p->cluster_timestamp, 24u, 0x3fu);
    dst_p[5] |= pack_right_shift_u32(src_p->cluster_timestamp, 16u, 0xffu);
    dst_p[6] |= pack_right_shift_u32(src_p->cluster_timestamp, 8u, 0xffu);
    dst_p[7] |= pack_left_shift_u32(src_p->cluster_timestamp, 0u, 0xffu);
    dst_p[8] |= pack_left_shift_u8(src_p->cluster_radar_identify, 0u, 0xffu);
    dst_p[9] |= pack_right_shift_u16(src_p->cluster_vehicle_speed, 8u, 0xffu);
    dst_p[10] |= pack_left_shift_u16(src_p->cluster_vehicle_speed, 0u, 0xffu);
    dst_p[11] |= pack_right_shift_u16(src_p->cluster_yaw_rate, 8u, 0xffu);
    dst_p[12] |= pack_left_shift_u16(src_p->cluster_yaw_rate, 0u, 0xffu);
    dst_p[13] |= pack_left_shift_u8(src_p->cluster_gear_st, 0u, 0xffu);

    return (24);
}

int sr439_cluster_header_rl_unpack(
    struct sr439_cluster_header_rl_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 24u) {
        return (-EINVAL);
    }

    dst_p->cluster_frame_type = unpack_right_shift_u8(src_p[0], 6u, 0xc0u);
    dst_p->cluster_frame_num = unpack_left_shift_u32(src_p[0], 18u, 0x3fu);
    dst_p->cluster_frame_num |= unpack_left_shift_u32(src_p[1], 10u, 0xffu);
    dst_p->cluster_frame_num |= unpack_left_shift_u32(src_p[2], 2u, 0xffu);
    dst_p->cluster_frame_num |= unpack_right_shift_u32(src_p[3], 6u, 0xc0u);
    dst_p->cluster_target_number = unpack_left_shift_u8(src_p[3], 2u, 0x3fu);
    dst_p->cluster_target_number |= unpack_right_shift_u8(src_p[4], 6u, 0xc0u);
    dst_p->cluster_timestamp = unpack_left_shift_u32(src_p[4], 24u, 0x3fu);
    dst_p->cluster_timestamp |= unpack_left_shift_u32(src_p[5], 16u, 0xffu);
    dst_p->cluster_timestamp |= unpack_left_shift_u32(src_p[6], 8u, 0xffu);
    dst_p->cluster_timestamp |= unpack_right_shift_u32(src_p[7], 0u, 0xffu);
    dst_p->cluster_radar_identify = unpack_right_shift_u8(src_p[8], 0u, 0xffu);
    dst_p->cluster_vehicle_speed = unpack_left_shift_u16(src_p[9], 8u, 0xffu);
    dst_p->cluster_vehicle_speed |= unpack_right_shift_u16(src_p[10], 0u, 0xffu);
    dst_p->cluster_yaw_rate = unpack_left_shift_u16(src_p[11], 8u, 0xffu);
    dst_p->cluster_yaw_rate |= unpack_right_shift_u16(src_p[12], 0u, 0xffu);
    dst_p->cluster_gear_st = unpack_right_shift_u8(src_p[13], 0u, 0xffu);

    return (0);
}

int sr439_cluster_header_rl_init(struct sr439_cluster_header_rl_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct sr439_cluster_header_rl_t));

    return 0;
}

uint8_t sr439_cluster_header_rl_cluster_frame_type_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_cluster_header_rl_cluster_frame_type_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_cluster_header_rl_cluster_frame_type_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint32_t sr439_cluster_header_rl_cluster_frame_num_encode(double value)
{
    return (uint32_t)(value);
}

double sr439_cluster_header_rl_cluster_frame_num_decode(uint32_t value)
{
    return ((double)value);
}

bool sr439_cluster_header_rl_cluster_frame_num_is_in_range(uint32_t value)
{
    return (value <= 16777215u);
}

uint8_t sr439_cluster_header_rl_cluster_target_number_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_cluster_header_rl_cluster_target_number_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_cluster_header_rl_cluster_target_number_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint32_t sr439_cluster_header_rl_cluster_timestamp_encode(double value)
{
    return (uint32_t)(value);
}

double sr439_cluster_header_rl_cluster_timestamp_decode(uint32_t value)
{
    return ((double)value);
}

bool sr439_cluster_header_rl_cluster_timestamp_is_in_range(uint32_t value)
{
    return (value <= 1073741823u);
}

uint8_t sr439_cluster_header_rl_cluster_radar_identify_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_cluster_header_rl_cluster_radar_identify_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_cluster_header_rl_cluster_radar_identify_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint16_t sr439_cluster_header_rl_cluster_vehicle_speed_encode(double value)
{
    return (uint16_t)((value - -327.68) / 0.01);
}

double sr439_cluster_header_rl_cluster_vehicle_speed_decode(uint16_t value)
{
    return (((double)value * 0.01) + -327.68);
}

bool sr439_cluster_header_rl_cluster_vehicle_speed_is_in_range(uint16_t value)
{
    (void)value;

    return (true);
}

uint16_t sr439_cluster_header_rl_cluster_yaw_rate_encode(double value)
{
    return (uint16_t)((value - -327.68) / 0.01);
}

double sr439_cluster_header_rl_cluster_yaw_rate_decode(uint16_t value)
{
    return (((double)value * 0.01) + -327.68);
}

bool sr439_cluster_header_rl_cluster_yaw_rate_is_in_range(uint16_t value)
{
    (void)value;

    return (true);
}

uint8_t sr439_cluster_header_rl_cluster_gear_st_encode(double value)
{
    return (uint8_t)(value);
}

double sr439_cluster_header_rl_cluster_gear_st_decode(uint8_t value)
{
    return ((double)value);
}

bool sr439_cluster_header_rl_cluster_gear_st_is_in_range(uint8_t value)
{
    return (value <= 16u);
}
